<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title>Larkspur Ledger</title>
  <subtitle>SEO and content writing notes from Larkspur Studio</subtitle>
  <id>https://thebigasif.github.io/khalid/templates/almanac/</id>
  <link rel="alternate" type="text/html" href="https://thebigasif.github.io/khalid/templates/almanac/"/>
  <link rel="self" type="application/atom+xml" href="https://thebigasif.github.io/khalid/templates/almanac/atom.xml"/>
  <updated>2026-10-31T00:00:00Z</updated>
  <author>
    <name>Larkspur Ledger</name>
  </author>
  <entry>
    <title>News: our 2026 benchmark data is free to download</title>
    <id>https://thebigasif.github.io/khalid/templates/almanac/news/benchmark-data-open/</id>
    <link rel="alternate" type="text/html" href="https://thebigasif.github.io/khalid/templates/almanac/news/benchmark-data-open/"/>
    <published>2026-10-31T00:00:00Z</published>
    <updated>2026-10-31T00:00:00Z</updated>
    <author>
      <name>Priya Raman</name>
    </author>
    <summary>Sample benchmark data from our 2026 content benchmark is now free to download under an open licence, with a data dictionary and method notes.</summary>
    <content type="html">&lt;p&gt;From today, anyone can download sample benchmark data from our 2026 content benchmark, free and under an open licence. The file sits on a new page with a data dictionary, our method and a note on how to cite it.&lt;/p&gt;
&lt;h2 id=&quot;what-we-released&quot;&gt;What we released&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/content-benchmark-data/&quot;&gt;new download page&lt;/a&gt; holds one spreadsheet file in the CSV format, which any spreadsheet app opens. Each row is one blog. Each column is one habit we counted: whether posts carry an author name, how many descriptions were left blank, whether anything was updated in the past year, and whether numbers link to a source.&lt;/p&gt;
&lt;p&gt;The page also explains every column in plain words, so you can check a figure before you quote it.&lt;/p&gt;
&lt;aside class=&quot;callout callout-warning&quot;&gt;
&lt;p&gt;Larkspur Studio and its benchmark are fictional: they exist to show what Khalid can do. The rows in the file are illustrative sample data, not a survey of real blogs. Use them to try out a chart or a formula, never as evidence.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;why-we-opened-the-benchmark-data&quot;&gt;Why we opened the benchmark data&lt;/h2&gt;
&lt;p&gt;We publish numbers in almost every post. Readers who want to check them should not have to take our word for it. Opening the benchmark data lets you rebuild our charts, test a different cut, or tell us where we got something wrong.&lt;/p&gt;
&lt;p&gt;It also follows our own advice. Our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/content-strategy-guide/&quot;&gt;complete guide to content strategy&lt;/a&gt; argues that original data is one of the few things a small team can publish that nobody else has.&lt;/p&gt;
&lt;h2 id=&quot;how-you-may-use-it&quot;&gt;How you may use it&lt;/h2&gt;
&lt;p&gt;The file is shared under the &lt;a href=&quot;https://creativecommons.org/licenses/by/4.0/&quot;&gt;Creative Commons Attribution 4.0 licence&lt;/a&gt;. You may copy it, change it and use it in your own work, for any purpose, as long as you name Larkspur Ledger and link to the data page.&lt;/p&gt;
&lt;h2 id=&quot;what-comes-next&quot;&gt;What comes next&lt;/h2&gt;
&lt;p&gt;We will add the 2027 rows next autumn, in the same columns, so the two years line up. If a column would help your own planning, &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/contact/&quot;&gt;write to us&lt;/a&gt; and say what you would do with it.&lt;/p&gt;
&lt;p&gt;For the findings themselves, start with &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/content-benchmark/&quot;&gt;the 2026 content benchmark&lt;/a&gt;, which walks through each habit and what it means for a small team.&lt;/p&gt;
&lt;form class=&quot;subscribe&quot; method=&quot;post&quot; action=&quot;/subscribe&quot;&gt;
&lt;p&gt;&lt;label for=&quot;subscribe-1-email&quot;&gt;Your email address&lt;/label&gt;
&lt;input id=&quot;subscribe-1-email&quot; name=&quot;email&quot; type=&quot;email&quot; autocomplete=&quot;email&quot; required /&gt;&lt;/p&gt;
&lt;p class=&quot;form-trap&quot; aria-hidden=&quot;true&quot;&gt;&lt;label for=&quot;subscribe-1-homepage&quot;&gt;Leave this empty&lt;/label&gt;
&lt;input id=&quot;subscribe-1-homepage&quot; name=&quot;homepage&quot; type=&quot;text&quot; tabindex=&quot;-1&quot; autocomplete=&quot;off&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;button type=&quot;submit&quot;&gt;Send me the 2027 data first&lt;/button&gt;&lt;/p&gt;
&lt;/form&gt;
</content>
  </entry>
  <entry>
    <title>A first topic cluster, step 3: link the cluster</title>
    <id>https://thebigasif.github.io/khalid/templates/almanac/topic-cluster-links/</id>
    <link rel="alternate" type="text/html" href="https://thebigasif.github.io/khalid/templates/almanac/topic-cluster-links/"/>
    <published>2026-10-31T00:00:00Z</published>
    <updated>2026-10-31T00:00:00Z</updated>
    <author>
      <name>Maren Okafor</name>
    </author>
    <summary>The links are what make posts a topic cluster. Which links each post needs, what words to use for them, and how to check them.</summary>
    <content type="html">&lt;p&gt;You &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/topic-cluster-subject/&quot;&gt;picked a subject in step 1&lt;/a&gt; and &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/topic-cluster-plan/&quot;&gt;planned the posts in step 2&lt;/a&gt;. The posts are written. Now the links turn a pile of posts into one topic cluster that readers and search engines can follow.&lt;/p&gt;
&lt;h2 id=&quot;the-links-every-post-in-a-topic-cluster-needs&quot;&gt;The links every post in a topic cluster needs&lt;/h2&gt;
&lt;p&gt;Each short post links to the &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/pillar-post/&quot;&gt;Pillar post&lt;/a&gt; near the top, in a sentence that says why the reader might want the whole picture. The main post links to every short post from the section that covers its part.&lt;/p&gt;
&lt;p&gt;Then link the short posts to each other where one leads to the next. A post on finding a fault should point to the post on fixing it. Do not link everything to everything: each link should be one a reader would click.&lt;/p&gt;
&lt;h2 id=&quot;words-that-say-where-a-link-goes&quot;&gt;Words that say where a link goes&lt;/h2&gt;
&lt;p&gt;The words of a link tell a reader what they will find. &amp;quot;Read more&amp;quot; says nothing. &amp;quot;How to bleed a radiator&amp;quot; says exactly what is on the other side. Use the words of the post&#39;s question where they fit the sentence.&lt;/p&gt;
&lt;p&gt;Vary the words a little across posts. Twenty links with the very same words look made for machines, not for people.&lt;/p&gt;
&lt;h2 id=&quot;check-the-links-before-you-publish&quot;&gt;Check the links before you publish&lt;/h2&gt;
&lt;p&gt;Read each post as a stranger would. Click every link. Each one should work, land on the right post and make sense where it sits.&lt;/p&gt;
&lt;p&gt;Khalid checks the rest for you: it warns when a post in the cluster does not link to its main post, when a post has no links in, and when two links use the same words for different pages. The &lt;a href=&quot;https://ahrefs.com/blog/internal-links-for-seo/&quot;&gt;Ahrefs guide to internal links&lt;/a&gt; explains why these checks matter.&lt;/p&gt;
&lt;h2 id=&quot;what-comes-after&quot;&gt;What comes after&lt;/h2&gt;
&lt;p&gt;A cluster is never quite done. Each quarter, look at which short posts readers find and which they skip. Refresh the weak ones with our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/content-refresh/&quot;&gt;content refresh playbook&lt;/a&gt;, and add a new short post when readers ask a question the cluster does not answer yet.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>AI referral traffic: finding AI visits in analytics</title>
    <id>https://thebigasif.github.io/khalid/templates/almanac/ai-referral-traffic/</id>
    <link rel="alternate" type="text/html" href="https://thebigasif.github.io/khalid/templates/almanac/ai-referral-traffic/"/>
    <published>2026-10-30T00:00:00Z</published>
    <updated>2026-10-30T00:00:00Z</updated>
    <author>
      <name>Priya Raman</name>
    </author>
    <summary>Find the AI referral traffic that assistants send to your blog, group them in your analytics, and learn what the numbers can and cannot tell you.</summary>
    <content type="html">&lt;p&gt;AI referral traffic is the set of visits that reach your blog when a reader clicks a link inside an AI assistant&#39;s answer. Some of them show up in your analytics with a clear source. Others arrive with no source at all and hide among your direct visits. This post shows how to find the ones you can see, group them, and read them without fooling yourself.&lt;/p&gt;
&lt;p&gt;It sits in our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/ai-search-guide/&quot;&gt;AI search guide&lt;/a&gt;, which explains how these tools choose what to cite in the first place.&lt;/p&gt;
&lt;aside class=&quot;callout callout-summary&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Some assistants pass a referrer.&lt;/strong&gt; Their visits can be grouped with one rule.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Some visits arrive with none.&lt;/strong&gt; They land in direct traffic and cannot be separated.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Google&#39;s AI features are counted with web search&lt;/strong&gt; in Search Console, not apart from it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compare quality, not just volume.&lt;/strong&gt; Look at which pages they land on and what readers do next.&lt;/li&gt;
&lt;/ul&gt;
&lt;/aside&gt;
&lt;nav class=&quot;toc&quot; aria-label=&quot;Contents&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#where-ai-referral-traffic-comes-from&quot;&gt;Where AI referral traffic comes from&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#why-some-ai-visits-look-like-direct-traffic&quot;&gt;Why some AI visits look like direct traffic&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#what-search-console-shows-for-googles-ai-features&quot;&gt;What Search Console shows for Google&amp;#39;s AI features&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#build-an-ai-channel-in-your-analytics&quot;&gt;Build an AI channel in your analytics&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#what-to-compare-once-you-can-see-them&quot;&gt;What to compare once you can see them&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#the-limits-of-what-you-can-measure&quot;&gt;The limits of what you can measure&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/nav&gt;
&lt;h2 id=&quot;where-ai-referral-traffic-comes-from&quot;&gt;Where AI referral traffic comes from&lt;/h2&gt;
&lt;p&gt;When you click a link on one site, your browser tells the next site where you came from. That note is the referrer, and analytics tools read it to name the source of a visit. The &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer&quot;&gt;Referer header on MDN&lt;/a&gt; explains how it works and when a browser leaves it out.&lt;/p&gt;
&lt;p&gt;Several AI assistants send a referrer when a reader clicks a cited link in the browser. The domains we see in our own reports include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;chatgpt.com&lt;/code&gt; for ChatGPT&lt;/li&gt;
&lt;li&gt;&lt;code&gt;perplexity.ai&lt;/code&gt; for Perplexity&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gemini.google.com&lt;/code&gt; for Gemini&lt;/li&gt;
&lt;li&gt;&lt;code&gt;copilot.microsoft.com&lt;/code&gt; for Microsoft Copilot&lt;/li&gt;
&lt;li&gt;&lt;code&gt;claude.ai&lt;/code&gt; for Claude&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some assistants also add a tracking tag to the link, such as &lt;code&gt;utm_source=chatgpt.com&lt;/code&gt;. Your analytics will then show that value as the source even if the referrer is missing.&lt;/p&gt;
&lt;h2 id=&quot;why-some-ai-visits-look-like-direct-traffic&quot;&gt;Why some AI visits look like direct traffic&lt;/h2&gt;
&lt;p&gt;Not every click carries a referrer. A link opened from a phone app, a link copied into a new tab, or a strict privacy setting can all strip it. Those visits arrive with no source, and analytics files them as direct.&lt;/p&gt;
&lt;p&gt;So the AI referral traffic you can see is a floor, not a total. The real number is higher by an amount you cannot measure. Treat any count as &amp;quot;at least this many&amp;quot;, and watch the trend over months rather than the size of one month.&lt;/p&gt;
&lt;aside class=&quot;callout callout-warning&quot;&gt;
&lt;p&gt;Do not add your direct traffic to your AI count to &amp;quot;correct&amp;quot; it. Direct visits also include bookmarks, typed addresses and links from email. There is no honest way to split them.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;what-search-console-shows-for-googles-ai-features&quot;&gt;What Search Console shows for Google&#39;s AI features&lt;/h2&gt;
&lt;p&gt;Google&#39;s &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/ai-overview/&quot;&gt;AI Overviews&lt;/a&gt; and AI Mode link to pages too. Clicks from them come from Google itself, so analytics files them as organic search, not as AI referrals.&lt;/p&gt;
&lt;p&gt;In Search Console, Google counts those clicks and impressions in the Performance report for web search, together with the other results. Google&#39;s page on &lt;a href=&quot;https://developers.google.com/search/docs/appearance/ai-features&quot;&gt;AI features and your website&lt;/a&gt; describes this. At the time of writing the report has no filter that splits them out, so treat any tool that claims to show them apart with care. Our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/search-console-setup/&quot;&gt;Search Console setup guide&lt;/a&gt; covers the report itself, and our study of &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/ai-search-sources/&quot;&gt;which pages AI tools cite&lt;/a&gt; shows what earns those links.&lt;/p&gt;
&lt;h2 id=&quot;build-an-ai-channel-in-your-analytics&quot;&gt;Build an AI channel in your analytics&lt;/h2&gt;
&lt;p&gt;To track AI referral traffic over time, give it a home. Most analytics tools let you define your own channel, or at least a saved segment, from a rule on the source of a visit. The rule below matches the domains listed earlier. It is a regular expression, a short pattern that matches many values at once.&lt;/p&gt;
&lt;pre class=&quot;syntax-highlighting&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;&lt;span class=&quot;hl-text hl-plain&quot;&gt;.*(chatgpt\.com|openai\.com|perplexity\.ai|gemini\.google\.com|copilot\.microsoft\.com|claude\.ai).*
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The leading and trailing &lt;code&gt;.*&lt;/code&gt; let the pattern match whether your tool checks the whole value or only part of it.&lt;/p&gt;
&lt;ol class=&quot;howto&quot;&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Find where channels are defined&lt;/p&gt;
&lt;p&gt;In Google Analytics this is the channel groups setting in the admin area. In other tools look for channels, sources or segments. The &lt;a href=&quot;https://support.google.com/analytics&quot;&gt;Analytics Help Centre&lt;/a&gt; has the current steps for Google&#39;s tool.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Copy the default group&lt;/p&gt;
&lt;p&gt;Work on a copy, so the original reports stay as they were. Name the copy something plain, such as &amp;quot;Channels with AI&amp;quot;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Add a channel named AI assistants&lt;/p&gt;
&lt;p&gt;Set its rule to &amp;quot;source matches regex&amp;quot; and paste the pattern above.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Move it above referral&lt;/p&gt;
&lt;p&gt;Channel rules run in order, and the first match wins. If the AI channel sits below the referral channel, those visits are counted as referrals before your rule sees them.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Check it against raw sources&lt;/p&gt;
&lt;p&gt;Open a report of sources for the last month. Every AI domain you can see there should now fall into the new channel.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;aside class=&quot;callout callout-tip&quot;&gt;
&lt;p&gt;Review the pattern every quarter. New assistants appear and old ones change their domain. A rule written once and never checked will slowly miss more visits.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;what-to-compare-once-you-can-see-them&quot;&gt;What to compare once you can see them&lt;/h2&gt;
&lt;p&gt;A count of AI referral traffic on its own tells you little. The useful questions are about which pages and which readers.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Compare&lt;/th&gt;
&lt;th&gt;Why it helps&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Landing pages&lt;/td&gt;
&lt;td&gt;Shows which posts the assistants cite most&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engaged visits&lt;/td&gt;
&lt;td&gt;Shows whether readers stay or bounce straight back&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sign-ups and enquiries&lt;/td&gt;
&lt;td&gt;Shows whether the visits are worth anything to you&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The same pages from organic search&lt;/td&gt;
&lt;td&gt;Shows whether AI readers behave differently from searchers&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figure&gt;
&lt;img src=&quot;/khalid/templates/almanac/ai-referral-traffic/sources.svg&quot; alt=&quot;Bar chart of example data showing monthly AI referral traffic to a blog, split by assistant&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; /&gt;
&lt;figcaption&gt;
&lt;p&gt;Example data for a small blog, not real figures. Notice that one source sends most of the visits, so a change in that one assistant moves the whole line.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;In our own reports, the landing pages tell the clearest story. The posts that draw the most AI referral traffic are the ones with a plain answer under each question heading. If you want more of them, our guide to &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/answer-capsule/&quot;&gt;writing answer capsules&lt;/a&gt; is the place to start. To judge whether those visits pay their way, see our post on &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/content-roi/&quot;&gt;what content is worth to a business&lt;/a&gt;.&lt;/p&gt;
&lt;aside class=&quot;callout callout-note&quot;&gt;
&lt;p&gt;AI crawlers that fetch your pages do not run the analytics script, so they never appear in these reports. They show up only in your server logs. A crawl is not a visit: count only the readers.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;the-limits-of-what-you-can-measure&quot;&gt;The limits of what you can measure&lt;/h2&gt;
&lt;p&gt;Keep three limits in mind when you report on AI referral traffic.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;The count is a floor.&lt;/strong&gt; Visits with no referrer are lost to direct.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Google&#39;s AI features are mixed in.&lt;/strong&gt; They sit inside organic search and inside web search in Search Console.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sources change.&lt;/strong&gt; Domains move, apps change how they open links, and new tools arrive.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;None of this makes the numbers useless. It makes them a trend to watch, not a total to report as fact.&lt;/p&gt;
&lt;form class=&quot;subscribe&quot; method=&quot;post&quot; action=&quot;/subscribe&quot;&gt;
&lt;p&gt;&lt;label for=&quot;subscribe-1-email&quot;&gt;Your email address&lt;/label&gt;
&lt;input id=&quot;subscribe-1-email&quot; name=&quot;email&quot; type=&quot;email&quot; autocomplete=&quot;email&quot; required /&gt;&lt;/p&gt;
&lt;p class=&quot;form-trap&quot; aria-hidden=&quot;true&quot;&gt;&lt;label for=&quot;subscribe-1-homepage&quot;&gt;Leave this empty&lt;/label&gt;
&lt;input id=&quot;subscribe-1-homepage&quot; name=&quot;homepage&quot; type=&quot;text&quot; tabindex=&quot;-1&quot; autocomplete=&quot;off&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;button type=&quot;submit&quot;&gt;Get our AI search notes&lt;/button&gt;&lt;/p&gt;
&lt;/form&gt;
</content>
  </entry>
  <entry>
    <title>Search traffic in 2026: what our client charts show</title>
    <id>https://thebigasif.github.io/khalid/templates/almanac/search-traffic/</id>
    <link rel="alternate" type="text/html" href="https://thebigasif.github.io/khalid/templates/almanac/search-traffic/"/>
    <published>2026-10-30T00:00:00Z</published>
    <updated>2026-10-30T00:00:00Z</updated>
    <author>
      <name>Priya Raman</name>
    </author>
    <summary>How search traffic moved for the blogs we look after this year, where the clicks came from, and the three charts we now send every client each month.</summary>
    <content type="html">&lt;p&gt;Every month we send each client the same three charts about their search traffic. They answer the questions owners ask most: is the blog growing, which pages bring readers in, and how much of it now comes from AI search. This post shows the three charts for a typical client in 2026 and how to read them.&lt;/p&gt;
&lt;p&gt;The numbers below are from one anonymised client, a software company with a blog of about two hundred posts, and come from its own &lt;a href=&quot;https://search.google.com/search-console/about&quot;&gt;Search Console&lt;/a&gt; and analytics, read on 31 October 2026.&lt;/p&gt;
&lt;h2 id=&quot;search-traffic-month-by-month&quot;&gt;Search traffic month by month&lt;/h2&gt;
&lt;p&gt;The first chart is the one owners look at first: visits from search engines each month, split into Google and every other engine. The numbers sit in a CSV file next to this post, so we update the file and the chart redraws itself when the site is built.&lt;/p&gt;
&lt;figure class=&quot;chart chart-line&quot;&gt;
&lt;figcaption&gt;Visits from search in 2026, in thousands &lt;a class=&quot;chart-file&quot; href=&quot;visits.csv&quot; download&gt;CSV&lt;/a&gt;&lt;/figcaption&gt;
&lt;ul class=&quot;chart-legend&quot; aria-hidden=&quot;true&quot;&gt;&lt;li&gt;&lt;span class=&quot;s1&quot;&gt;&lt;/span&gt;Google&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;s2&quot;&gt;&lt;/span&gt;Other engines&lt;/li&gt;&lt;/ul&gt;
&lt;svg class=&quot;chart-drawing&quot; width=&quot;100%&quot; height=&quot;268&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;chart-zero&quot; x1=&quot;0&quot; x2=&quot;100%&quot; y1=&quot;240&quot; y2=&quot;240&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-grid&quot; x1=&quot;0&quot; x2=&quot;100%&quot; y1=&quot;166.66666666666669&quot; y2=&quot;166.66666666666669&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-grid&quot; x1=&quot;0&quot; x2=&quot;100%&quot; y1=&quot;93.33333333333334&quot; y2=&quot;93.33333333333334&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-grid&quot; x1=&quot;0&quot; x2=&quot;100%&quot; y1=&quot;20&quot; y2=&quot;20&quot;&gt;&lt;/line&gt;&lt;text class=&quot;chart-label&quot; x=&quot;13.55%&quot; y=&quot;260&quot; text-anchor=&quot;middle&quot;&gt;Jan&lt;/text&gt;&lt;text class=&quot;chart-label&quot; x=&quot;31.75%&quot; y=&quot;260&quot; text-anchor=&quot;middle&quot;&gt;Mar&lt;/text&gt;&lt;text class=&quot;chart-label&quot; x=&quot;49.95%&quot; y=&quot;260&quot; text-anchor=&quot;middle&quot;&gt;May&lt;/text&gt;&lt;text class=&quot;chart-label&quot; x=&quot;68.15%&quot; y=&quot;260&quot; text-anchor=&quot;middle&quot;&gt;Jul&lt;/text&gt;&lt;text class=&quot;chart-label&quot; x=&quot;86.35%&quot; y=&quot;260&quot; text-anchor=&quot;middle&quot;&gt;Sep&lt;/text&gt;&lt;line class=&quot;chart-trace s1&quot; x1=&quot;13.55%&quot; y1=&quot;106.5&quot; x2=&quot;22.65%&quot; y2=&quot;100.7&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-trace s1&quot; x1=&quot;22.65%&quot; y1=&quot;100.7&quot; x2=&quot;31.75%&quot; y2=&quot;83.1&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-trace s1&quot; x1=&quot;31.75%&quot; y1=&quot;83.1&quot; x2=&quot;40.85%&quot; y2=&quot;72.1&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-trace s1&quot; x1=&quot;40.85%&quot; y1=&quot;72.1&quot; x2=&quot;49.95%&quot; y2=&quot;63.3&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-trace s1&quot; x1=&quot;49.95%&quot; y1=&quot;63.3&quot; x2=&quot;59.05%&quot; y2=&quot;54.5&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-trace s1&quot; x1=&quot;59.05%&quot; y1=&quot;54.5&quot; x2=&quot;68.15%&quot; y2=&quot;59.6&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-trace s1&quot; x1=&quot;68.15%&quot; y1=&quot;59.6&quot; x2=&quot;77.25%&quot; y2=&quot;72.8&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-trace s1&quot; x1=&quot;77.25%&quot; y1=&quot;72.8&quot; x2=&quot;86.35%&quot; y2=&quot;42.7&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-trace s1&quot; x1=&quot;86.35%&quot; y1=&quot;42.7&quot; x2=&quot;95.45%&quot; y2=&quot;24.4&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;s1&quot; cx=&quot;13.55%&quot; cy=&quot;106.5&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;s1&quot; cx=&quot;22.65%&quot; cy=&quot;100.7&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;s1&quot; cx=&quot;31.75%&quot; cy=&quot;83.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;s1&quot; cx=&quot;40.85%&quot; cy=&quot;72.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;s1&quot; cx=&quot;49.95%&quot; cy=&quot;63.3&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;s1&quot; cx=&quot;59.05%&quot; cy=&quot;54.5&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;s1&quot; cx=&quot;68.15%&quot; cy=&quot;59.6&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;s1&quot; cx=&quot;77.25%&quot; cy=&quot;72.8&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;s1&quot; cx=&quot;86.35%&quot; cy=&quot;42.7&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;s1&quot; cx=&quot;95.45%&quot; cy=&quot;24.4&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;line class=&quot;chart-trace s2&quot; x1=&quot;13.55%&quot; y1=&quot;224.6&quot; x2=&quot;22.65%&quot; y2=&quot;223.9&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-trace s2&quot; x1=&quot;22.65%&quot; y1=&quot;223.9&quot; x2=&quot;31.75%&quot; y2=&quot;222.4&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-trace s2&quot; x1=&quot;31.75%&quot; y1=&quot;222.4&quot; x2=&quot;40.85%&quot; y2=&quot;220.9&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-trace s2&quot; x1=&quot;40.85%&quot; y1=&quot;220.9&quot; x2=&quot;49.95%&quot; y2=&quot;219.5&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-trace s2&quot; x1=&quot;49.95%&quot; y1=&quot;219.5&quot; x2=&quot;59.05%&quot; y2=&quot;218.7&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-trace s2&quot; x1=&quot;59.05%&quot; y1=&quot;218.7&quot; x2=&quot;68.15%&quot; y2=&quot;218.7&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-trace s2&quot; x1=&quot;68.15%&quot; y1=&quot;218.7&quot; x2=&quot;77.25%&quot; y2=&quot;220.2&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-trace s2&quot; x1=&quot;77.25%&quot; y1=&quot;220.2&quot; x2=&quot;86.35%&quot; y2=&quot;217.3&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-trace s2&quot; x1=&quot;86.35%&quot; y1=&quot;217.3&quot; x2=&quot;95.45%&quot; y2=&quot;215.1&quot;&gt;&lt;/line&gt;&lt;circle class=&quot;s2&quot; cx=&quot;13.55%&quot; cy=&quot;224.6&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;s2&quot; cx=&quot;22.65%&quot; cy=&quot;223.9&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;s2&quot; cx=&quot;31.75%&quot; cy=&quot;222.4&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;s2&quot; cx=&quot;40.85%&quot; cy=&quot;220.9&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;s2&quot; cx=&quot;49.95%&quot; cy=&quot;219.5&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;s2&quot; cx=&quot;59.05%&quot; cy=&quot;218.7&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;s2&quot; cx=&quot;68.15%&quot; cy=&quot;218.7&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;s2&quot; cx=&quot;77.25%&quot; cy=&quot;220.2&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;s2&quot; cx=&quot;86.35%&quot; cy=&quot;217.3&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;circle class=&quot;s2&quot; cx=&quot;95.45%&quot; cy=&quot;215.1&quot; r=&quot;4&quot;&gt;&lt;/circle&gt;&lt;text class=&quot;chart-tick&quot; x=&quot;0&quot; y=&quot;235&quot;&gt;0k&lt;/text&gt;&lt;text class=&quot;chart-tick&quot; x=&quot;0&quot; y=&quot;161.66666666666669&quot;&gt;10k&lt;/text&gt;&lt;text class=&quot;chart-tick&quot; x=&quot;0&quot; y=&quot;88.33333333333334&quot;&gt;20k&lt;/text&gt;&lt;text class=&quot;chart-tick&quot; x=&quot;0&quot; y=&quot;15&quot;&gt;30k&lt;/text&gt;&lt;/svg&gt;
&lt;table class=&quot;visually-hidden&quot;&gt;
&lt;caption&gt;Visits from search in 2026, in thousands&lt;/caption&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th scope=&quot;col&quot;&gt;Month&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Google&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Other engines&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Jan&lt;/th&gt;&lt;td&gt;18.2k&lt;/td&gt;&lt;td&gt;2.1k&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Feb&lt;/th&gt;&lt;td&gt;19.0k&lt;/td&gt;&lt;td&gt;2.2k&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Mar&lt;/th&gt;&lt;td&gt;21.4k&lt;/td&gt;&lt;td&gt;2.4k&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Apr&lt;/th&gt;&lt;td&gt;22.9k&lt;/td&gt;&lt;td&gt;2.6k&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;May&lt;/th&gt;&lt;td&gt;24.1k&lt;/td&gt;&lt;td&gt;2.8k&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Jun&lt;/th&gt;&lt;td&gt;25.3k&lt;/td&gt;&lt;td&gt;2.9k&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Jul&lt;/th&gt;&lt;td&gt;24.6k&lt;/td&gt;&lt;td&gt;2.9k&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Aug&lt;/th&gt;&lt;td&gt;22.8k&lt;/td&gt;&lt;td&gt;2.7k&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Sep&lt;/th&gt;&lt;td&gt;26.9k&lt;/td&gt;&lt;td&gt;3.1k&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Oct&lt;/th&gt;&lt;td&gt;29.4k&lt;/td&gt;&lt;td&gt;3.4k&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;p&gt;Search traffic grew steadily after a slow start. The dip in August is the summer, not a problem: it happens in the same weeks every year. Read a chart like this one against the same months last year, never against last month alone.&lt;/p&gt;
&lt;h2 id=&quot;which-pages-bring-readers-in&quot;&gt;Which pages bring readers in&lt;/h2&gt;
&lt;p&gt;The second chart lists the pages that brought the most visits from search in October 2026. Long guides and comparisons lead, and the home page is not even in the top five.&lt;/p&gt;
&lt;figure class=&quot;chart chart-bar&quot;&gt;
&lt;figcaption&gt;Visits from search by page in October 2026, in thousands&lt;/figcaption&gt;
&lt;svg class=&quot;chart-drawing&quot; width=&quot;100%&quot; height=&quot;250&quot; aria-hidden=&quot;true&quot;&gt;&lt;text class=&quot;chart-label&quot; x=&quot;0&quot; y=&quot;15&quot;&gt;Pricing guide&lt;/text&gt;&lt;rect class=&quot;s1&quot; x=&quot;0.00%&quot; y=&quot;22&quot; width=&quot;78.00%&quot; height=&quot;18&quot; rx=&quot;3&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;chart-value&quot; x=&quot;78.00%&quot; dx=&quot;6&quot; y=&quot;35.5&quot;&gt;4.2k&lt;/text&gt;&lt;text class=&quot;chart-label&quot; x=&quot;0&quot; y=&quot;65&quot;&gt;Comparison with rivals&lt;/text&gt;&lt;rect class=&quot;s1&quot; x=&quot;0.00%&quot; y=&quot;72&quot; width=&quot;66.86%&quot; height=&quot;18&quot; rx=&quot;3&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;chart-value&quot; x=&quot;66.86%&quot; dx=&quot;6&quot; y=&quot;85.5&quot;&gt;3.6k&lt;/text&gt;&lt;text class=&quot;chart-label&quot; x=&quot;0&quot; y=&quot;115&quot;&gt;Setup checklist&lt;/text&gt;&lt;rect class=&quot;s1&quot; x=&quot;0.00%&quot; y=&quot;122&quot; width=&quot;53.86%&quot; height=&quot;18&quot; rx=&quot;3&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;chart-value&quot; x=&quot;53.86%&quot; dx=&quot;6&quot; y=&quot;135.5&quot;&gt;2.9k&lt;/text&gt;&lt;text class=&quot;chart-label&quot; x=&quot;0&quot; y=&quot;165&quot;&gt;Glossary of terms&lt;/text&gt;&lt;rect class=&quot;s1&quot; x=&quot;0.00%&quot; y=&quot;172&quot; width=&quot;33.43%&quot; height=&quot;18&quot; rx=&quot;3&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;chart-value&quot; x=&quot;33.43%&quot; dx=&quot;6&quot; y=&quot;185.5&quot;&gt;1.8k&lt;/text&gt;&lt;text class=&quot;chart-label&quot; x=&quot;0&quot; y=&quot;215&quot;&gt;Home page&lt;/text&gt;&lt;rect class=&quot;s1&quot; x=&quot;0.00%&quot; y=&quot;222&quot; width=&quot;20.43%&quot; height=&quot;18&quot; rx=&quot;3&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;chart-value&quot; x=&quot;20.43%&quot; dx=&quot;6&quot; y=&quot;235.5&quot;&gt;1.1k&lt;/text&gt;&lt;/svg&gt;
&lt;table class=&quot;visually-hidden&quot;&gt;
&lt;caption&gt;Visits from search by page in October 2026, in thousands&lt;/caption&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th scope=&quot;col&quot;&gt;Page&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Visits&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Pricing guide&lt;/th&gt;&lt;td&gt;4.2k&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Comparison with rivals&lt;/th&gt;&lt;td&gt;3.6k&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Setup checklist&lt;/th&gt;&lt;td&gt;2.9k&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Glossary of terms&lt;/th&gt;&lt;td&gt;1.8k&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Home page&lt;/th&gt;&lt;td&gt;1.1k&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;p&gt;If most of your search traffic lands on a few guides, give them the most care: update them first, link to them from new posts and keep their titles sharp. Our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/content-refresh/&quot;&gt;playbook for posts that slipped&lt;/a&gt; shows how.&lt;/p&gt;
&lt;h2 id=&quot;how-much-comes-from-ai-search&quot;&gt;How much comes from AI search&lt;/h2&gt;
&lt;p&gt;The third chart is new this year. It shows the share of visits that came from AI search tools, such as answers that cite the blog, in each quarter of 2026 beside the same quarter of 2025. To earn more of those visits, read &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/ai-search-guide/&quot;&gt;our guide to writing for AI search&lt;/a&gt;.&lt;/p&gt;
&lt;figure class=&quot;chart chart-column&quot;&gt;
&lt;figcaption&gt;Share of visits from AI search by quarter, 2025 and 2026&lt;/figcaption&gt;
&lt;ul class=&quot;chart-legend&quot; aria-hidden=&quot;true&quot;&gt;&lt;li&gt;&lt;span class=&quot;s1&quot;&gt;&lt;/span&gt;2025&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;s2&quot;&gt;&lt;/span&gt;2026&lt;/li&gt;&lt;/ul&gt;
&lt;svg class=&quot;chart-drawing&quot; width=&quot;100%&quot; height=&quot;268&quot; aria-hidden=&quot;true&quot;&gt;&lt;line class=&quot;chart-zero&quot; x1=&quot;0&quot; x2=&quot;100%&quot; y1=&quot;240&quot; y2=&quot;240&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-grid&quot; x1=&quot;0&quot; x2=&quot;100%&quot; y1=&quot;185&quot; y2=&quot;185&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-grid&quot; x1=&quot;0&quot; x2=&quot;100%&quot; y1=&quot;130&quot; y2=&quot;130&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-grid&quot; x1=&quot;0&quot; x2=&quot;100%&quot; y1=&quot;75&quot; y2=&quot;75&quot;&gt;&lt;/line&gt;&lt;line class=&quot;chart-grid&quot; x1=&quot;0&quot; x2=&quot;100%&quot; y1=&quot;20&quot; y2=&quot;20&quot;&gt;&lt;/line&gt;&lt;text class=&quot;chart-label&quot; x=&quot;20.38%&quot; y=&quot;260&quot; text-anchor=&quot;middle&quot;&gt;Q1&lt;/text&gt;&lt;text class=&quot;chart-label&quot; x=&quot;43.12%&quot; y=&quot;260&quot; text-anchor=&quot;middle&quot;&gt;Q2&lt;/text&gt;&lt;text class=&quot;chart-label&quot; x=&quot;65.88%&quot; y=&quot;260&quot; text-anchor=&quot;middle&quot;&gt;Q3&lt;/text&gt;&lt;text class=&quot;chart-label&quot; x=&quot;88.62%&quot; y=&quot;260&quot; text-anchor=&quot;middle&quot;&gt;Q4&lt;/text&gt;&lt;rect class=&quot;s1&quot; x=&quot;13.09%&quot; y=&quot;223.5&quot; width=&quot;6.70%&quot; height=&quot;16.5&quot; rx=&quot;2&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;s2&quot; x=&quot;20.38%&quot; y=&quot;182.2&quot; width=&quot;6.70%&quot; height=&quot;57.8&quot; rx=&quot;2&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;s1&quot; x=&quot;35.84%&quot; y=&quot;215.2&quot; width=&quot;6.70%&quot; height=&quot;24.8&quot; rx=&quot;2&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;s2&quot; x=&quot;43.12%&quot; y=&quot;146.5&quot; width=&quot;6.70%&quot; height=&quot;93.5&quot; rx=&quot;2&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;s1&quot; x=&quot;58.59%&quot; y=&quot;201.5&quot; width=&quot;6.70%&quot; height=&quot;38.5&quot; rx=&quot;2&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;s2&quot; x=&quot;65.88%&quot; y=&quot;108.0&quot; width=&quot;6.70%&quot; height=&quot;132.0&quot; rx=&quot;2&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;s1&quot; x=&quot;81.34%&quot; y=&quot;185.0&quot; width=&quot;6.70%&quot; height=&quot;55.0&quot; rx=&quot;2&quot;&gt;&lt;/rect&gt;&lt;rect class=&quot;s2&quot; x=&quot;88.62%&quot; y=&quot;61.2&quot; width=&quot;6.70%&quot; height=&quot;178.8&quot; rx=&quot;2&quot;&gt;&lt;/rect&gt;&lt;text class=&quot;chart-tick&quot; x=&quot;0&quot; y=&quot;235&quot;&gt;0%&lt;/text&gt;&lt;text class=&quot;chart-tick&quot; x=&quot;0&quot; y=&quot;180&quot;&gt;2%&lt;/text&gt;&lt;text class=&quot;chart-tick&quot; x=&quot;0&quot; y=&quot;125&quot;&gt;4%&lt;/text&gt;&lt;text class=&quot;chart-tick&quot; x=&quot;0&quot; y=&quot;70&quot;&gt;6%&lt;/text&gt;&lt;text class=&quot;chart-tick&quot; x=&quot;0&quot; y=&quot;15&quot;&gt;8%&lt;/text&gt;&lt;/svg&gt;
&lt;table class=&quot;visually-hidden&quot;&gt;
&lt;caption&gt;Share of visits from AI search by quarter, 2025 and 2026&lt;/caption&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th scope=&quot;col&quot;&gt;Quarter&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;2025&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;2026&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Q1&lt;/th&gt;&lt;td&gt;0.6%&lt;/td&gt;&lt;td&gt;2.1%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Q2&lt;/th&gt;&lt;td&gt;0.9%&lt;/td&gt;&lt;td&gt;3.4%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Q3&lt;/th&gt;&lt;td&gt;1.4%&lt;/td&gt;&lt;td&gt;4.8%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Q4&lt;/th&gt;&lt;td&gt;2.0%&lt;/td&gt;&lt;td&gt;6.5%&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;p&gt;The share of search traffic from AI tools is still small, but it tripled in a year. Pages that state a fact plainly and show its source get quoted most, as our post on &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/ai-search-sources/&quot;&gt;how AI search picks which pages to quote&lt;/a&gt; explains.&lt;/p&gt;
&lt;h2 id=&quot;where-our-clients-are&quot;&gt;Where our clients are&lt;/h2&gt;
&lt;p&gt;Most of the blogs in this report belong to companies near our Bristol office. The map is a live one: drag it, zoom in and out, it works right here in the post.&lt;/p&gt;
&lt;figure class=&quot;embed embed-site&quot;&gt;
&lt;iframe src=&quot;https://www.openstreetmap.org/export/embed.html?bbox=-2.65%2C51.42%2C-2.52%2C51.49&amp;amp;layer=mapnik&quot; title=&quot;A map of Bristol, where most of the companies in this report are&quot; width=&quot;560&quot; height=&quot;360&quot; loading=&quot;lazy&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; sandbox=&quot;allow-scripts allow-same-origin allow-forms allow-popups&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;a href=&quot;https://www.openstreetmap.org/export/embed.html?bbox=-2.65%2C51.42%2C-2.52%2C51.49&amp;amp;layer=mapnik&quot;&gt;A map of Bristol, where most of the companies in this report are&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;build-these-charts-for-your-own-blog&quot;&gt;Build these charts for your own blog&lt;/h2&gt;
&lt;p&gt;You do not need a dashboard tool to chart your search traffic. Export the months from your analytics as a CSV file, put it next to the post and name it in the chart. Our own planning tool, &lt;a href=&quot;https://planner.example.com/reports/?utm_source=blog&amp;amp;utm_medium=content&amp;amp;utm_campaign=search-traffic&quot;&gt;Larkspur Planner&lt;/a&gt;, makes the same three charts from your Search Console data and keeps the file up to date for you.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>A first topic cluster, step 2: plan the posts</title>
    <id>https://thebigasif.github.io/khalid/templates/almanac/topic-cluster-plan/</id>
    <link rel="alternate" type="text/html" href="https://thebigasif.github.io/khalid/templates/almanac/topic-cluster-plan/"/>
    <published>2026-10-30T00:00:00Z</published>
    <updated>2026-10-30T00:00:00Z</updated>
    <author>
      <name>Priya Raman</name>
    </author>
    <summary>Turn one subject into a topic cluster plan a small team can write. One long main post, six short ones, and a brief for each.</summary>
    <content type="html">&lt;p&gt;In &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/topic-cluster-subject/&quot;&gt;step 1 you picked one subject&lt;/a&gt; and listed six or seven parts of it. Now turn that list into a topic cluster your team can write in a month or two.&lt;/p&gt;
&lt;h2 id=&quot;one-main-post-at-the-centre-of-the-topic-cluster&quot;&gt;One main post at the centre of the topic cluster&lt;/h2&gt;
&lt;p&gt;Every cluster has one &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/pillar-post/&quot;&gt;Pillar post&lt;/a&gt;: a long post that covers the whole subject at a glance. It answers the big question in a few lines, then gives each part a short section that ends with a link to that part&#39;s own post.&lt;/p&gt;
&lt;p&gt;Write it last, not first. By the time the short posts are done, you will know the subject far better, and the main post will be sharper for it.&lt;/p&gt;
&lt;h2 id=&quot;one-short-post-per-part&quot;&gt;One short post per part&lt;/h2&gt;
&lt;p&gt;Each part gets a post of its own that answers one question well. Keep each to one job. A post that tries to answer three questions answers none of them clearly.&lt;/p&gt;
&lt;p&gt;Give each short post a brief before anyone writes a word: the question, the reader, the one thing they should do after reading, and the posts it links to. Our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/content-brief-template/&quot;&gt;content brief template&lt;/a&gt; holds all of this on one page.&lt;/p&gt;
&lt;h2 id=&quot;put-it-on-the-calendar&quot;&gt;Put it on the calendar&lt;/h2&gt;
&lt;p&gt;A cluster of seven posts is two months of work for a small team. Spread it out: one short post a week, with the main post at the end. Leave a gap every few weeks for edits and late facts, as our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/content-calendar/&quot;&gt;content calendar guide&lt;/a&gt; explains.&lt;/p&gt;
&lt;h2 id=&quot;write-the-plan-down-in-one-place&quot;&gt;Write the plan down in one place&lt;/h2&gt;
&lt;p&gt;Keep the plan in one sheet: the subject line you wrote first, each post&#39;s question, its writer, its due date and its links. When someone asks what the cluster is for, the sheet answers.&lt;/p&gt;
&lt;p&gt;The search engine guides from &lt;a href=&quot;https://moz.com/beginners-guide-to-seo&quot;&gt;Moz&lt;/a&gt; say the same in their own words: plan around what searchers need, not around single words.&lt;/p&gt;
&lt;p&gt;Next, &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/topic-cluster-links/&quot;&gt;step 3 links the cluster&lt;/a&gt;, so every post leads readers to the next one.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>A first topic cluster, step 1: pick one subject</title>
    <id>https://thebigasif.github.io/khalid/templates/almanac/topic-cluster-subject/</id>
    <link rel="alternate" type="text/html" href="https://thebigasif.github.io/khalid/templates/almanac/topic-cluster-subject/"/>
    <published>2026-10-29T00:00:00Z</published>
    <updated>2026-10-29T00:00:00Z</updated>
    <author>
      <name>Maren Okafor</name>
    </author>
    <summary>The first step of a topic cluster is the hardest. How to pick one subject your readers ask about and your team can cover well.</summary>
    <content type="html">&lt;p&gt;A topic cluster is a group of posts on one subject. One long post covers the whole subject, and shorter posts each take one part of it. They all link to each other. This series builds a first cluster in three steps, and this is step one: pick the subject.&lt;/p&gt;
&lt;h2 id=&quot;find-a-topic-cluster-in-what-readers-ask&quot;&gt;Find a topic cluster in what readers ask&lt;/h2&gt;
&lt;p&gt;Look at the questions your readers send you, the calls your team takes and the words people type into your site search. Write each one down as the reader said it. After a week you will have a list of thirty or forty questions.&lt;/p&gt;
&lt;p&gt;Now group them. Most lists fall into four or five groups, and one group is nearly always bigger than the rest. That group is your first subject. It is what people already want from you.&lt;/p&gt;
&lt;h2 id=&quot;check-that-you-can-cover-it-well&quot;&gt;Check that you can cover it well&lt;/h2&gt;
&lt;p&gt;A cluster needs depth. Before you commit, list six or seven parts of the subject that each deserve a short post of their own. If you cannot find six, the subject is too small. If you find twenty, it is too big: split it and pick one half.&lt;/p&gt;
&lt;p&gt;Then check who will write. Each part needs someone who knows it from real work. A cluster written from other blogs adds nothing new, and readers notice.&lt;/p&gt;
&lt;h2 id=&quot;write-the-subject-in-one-line&quot;&gt;Write the subject in one line&lt;/h2&gt;
&lt;p&gt;End this step with one sentence that names the subject and the reader, such as &amp;quot;boiler faults, for home owners who want them fixed today&amp;quot;. Keep it on the wall. Every post in the cluster should serve that line.&lt;/p&gt;
&lt;p&gt;Google&#39;s own guide to &lt;a href=&quot;https://developers.google.com/search/docs/fundamentals/creating-helpful-content&quot;&gt;creating helpful content&lt;/a&gt; asks the same thing: who is this for, and does it help them?&lt;/p&gt;
&lt;p&gt;Next, in &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/topic-cluster-plan/&quot;&gt;step 2, plan the posts&lt;/a&gt;, you turn the list of parts into a plan with one &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/pillar-post/&quot;&gt;Pillar post&lt;/a&gt; at its centre. Then &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/topic-cluster-links/&quot;&gt;step 3 links the cluster&lt;/a&gt; so each post leads to the next.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>How AI search chooses the pages it quotes</title>
    <id>https://thebigasif.github.io/khalid/templates/almanac/ai-search-sources/</id>
    <link rel="alternate" type="text/html" href="https://thebigasif.github.io/khalid/templates/almanac/ai-search-sources/"/>
    <published>2026-10-27T00:00:00Z</published>
    <updated>2026-10-27T00:00:00Z</updated>
    <author>
      <name>Priya Raman</name>
    </author>
    <summary>What we learned about how AI search picks the pages it quotes, and the writing habits that make a blog post easy to cite and hard to ignore.</summary>
    <content type="html">&lt;p&gt;AI search tools answer a question in a few sentences and name a handful of pages as their sources. Being one of those sources is the new first place. This post explains what those tools look for when they choose a page, and how to write posts they can quote with confidence.&lt;/p&gt;
&lt;p&gt;None of this replaces good writing for people. The pages AI search quotes are, almost without exception, pages a human reader would also find clear. For the whole plan, from crawler access to measuring visits, see our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/ai-search-guide/&quot;&gt;complete guide to optimising content&lt;/a&gt;.&lt;/p&gt;
&lt;aside class=&quot;callout callout-summary&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Answer early.&lt;/strong&gt; A self-contained answer right under a question heading is the easiest passage to quote.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Add something new.&lt;/strong&gt; Pages that repeat the top results give a tool no reason to cite them.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Name your sources.&lt;/strong&gt; A number with a source and a year is safer to repeat than a number alone.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Show who wrote it.&lt;/strong&gt; A named author with a profile makes the page easier to trust and to credit.&lt;/li&gt;
&lt;/ul&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;how-does-ai-search-pick-a-source&quot;&gt;How does AI search pick a source?&lt;/h2&gt;
&lt;p&gt;An AI search tool first runs an ordinary search for the question, then reads the best pages it finds. It looks for short passages that answer the question directly and agree with other good sources. The pages it names are the ones whose passages it used, so clear, quotable answers win.&lt;/p&gt;
&lt;h2 id=&quot;what-makes-a-passage-easy-to-quote&quot;&gt;What makes a passage easy to quote?&lt;/h2&gt;
&lt;p&gt;A quotable passage answers one question completely in a few sentences, without needing the paragraphs around it. It names the subject instead of saying &amp;quot;this&amp;quot; or &amp;quot;it&amp;quot;, gives the number with its source, and stops. We call this pattern an &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/answer-capsule/&quot;&gt;answer capsule&lt;/a&gt;, and we put one under every question heading.&lt;/p&gt;
&lt;h2 id=&quot;does-ranking-in-ordinary-search-still-matter&quot;&gt;Does ranking in ordinary search still matter?&lt;/h2&gt;
&lt;p&gt;Yes. Most AI search tools start from the pages a normal search engine already ranks, so a page nobody can find is a page nobody quotes. Good ordinary rankings put your post on the reading list. Clear passages, real sources and a named author then decide whether the tool actually cites it.&lt;/p&gt;
&lt;h2 id=&quot;what-we-saw-in-our-own-numbers&quot;&gt;What we saw in our own numbers&lt;/h2&gt;
&lt;p&gt;We looked at the questions our readers ask most and checked which pages the main AI search tools named as sources. The pattern was clear: the pages that were cited answered in the first paragraph under a heading, and most of them named a source for every number.&lt;/p&gt;
&lt;aside class=&quot;callout callout-stat&quot;&gt;
&lt;p&gt;&lt;strong&gt;3 in 5&lt;/strong&gt; of the pages AI tools cited in our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/content-benchmark/&quot;&gt;2026 content benchmark sample&lt;/a&gt; answered the question within the first paragraph under its heading.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;The pages that were passed over had the same facts, but buried. They opened with a story, saved the answer for the end, or spread it across a long paragraph that also covered two other points.&lt;/p&gt;
&lt;figure class=&quot;pullquote&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;The tools are not looking for the longest page. They are looking for the sentence they can lift without changing a word.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;Priya Raman, research editor&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;give-the-tool-something-it-cannot-find-elsewhere&quot;&gt;Give the tool something it cannot find elsewhere&lt;/h2&gt;
&lt;p&gt;If ten pages say the same thing, a tool can cite any of them, and it often picks the one with the strongest name. A small blog wins by adding &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/information-gain/&quot;&gt;something the other pages lack&lt;/a&gt;: a test you ran, a number you counted, a worked example or a clear method.&lt;/p&gt;
&lt;p&gt;That is why our own posts lean on first-hand work. The benchmark numbers we publish exist nowhere else, so a tool that wants them has to cite us.&lt;/p&gt;
&lt;h2 id=&quot;mark-up-who-wrote-it-and-when&quot;&gt;Mark up who wrote it and when&lt;/h2&gt;
&lt;p&gt;AI search tools want to tell their readers who said something and how recent it is. Make both easy to find:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Show the author&#39;s name on the post, with a link to a profile that lists their experience.&lt;/li&gt;
&lt;li&gt;Show the publish date, and the updated date with a note on what changed.&lt;/li&gt;
&lt;li&gt;Add &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/structured-data/&quot;&gt;structured data for the author and dates&lt;/a&gt;, so machines read the same facts that people see.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;write-for-the-reader-then-check-for-the-tool&quot;&gt;Write for the reader, then check for the tool&lt;/h2&gt;
&lt;p&gt;The habits that help AI search are the same habits our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/seo-writing-guide/&quot;&gt;SEO writing guide&lt;/a&gt; teaches for people: one question per post, the answer near the top, and short paragraphs with one idea each.&lt;/p&gt;
&lt;p&gt;Start from the reader&#39;s goal. A post that matches &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/search-intent/&quot;&gt;what the searcher really wants&lt;/a&gt; is the post a tool can quote, because it answers the question that was asked. Then read your draft as a tool would: cover each paragraph under a question heading and ask whether it still answers the question on its own. Maren and I talk this habit through in &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/podcast-answer-first/&quot;&gt;our first podcast episode&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;questions-about-ai-search&quot;&gt;Questions about AI search&lt;/h2&gt;
&lt;section class=&quot;faq&quot;&gt;
&lt;details open&gt;
&lt;summary&gt;Can I block AI search tools from my blog?&lt;/summary&gt;
&lt;p&gt;You can. Most AI search tools respect the rules in your &lt;a href=&quot;https://developers.google.com/search/docs/crawling-indexing/robots/intro&quot;&gt;robots.txt file&lt;/a&gt;, and each names its own crawler; our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/robots-txt/&quot;&gt;note on robots rules&lt;/a&gt; explains how they work. Blocking them keeps your posts out of their answers, which also means no citations and no visits from them. For a blog that wants readers, we recommend letting them in.&lt;/p&gt;
&lt;/details&gt;
&lt;details open&gt;
&lt;summary&gt;Do AI search tools send visitors?&lt;/summary&gt;
&lt;p&gt;They send fewer visitors than a top result in ordinary search, because the answer is often enough. The visitors they do send arrive already convinced the page is worth reading, so they stay longer. A citation also puts your brand name in front of every reader who sees the answer. Our post on &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/ai-referral-traffic/&quot;&gt;finding AI visits in your analytics&lt;/a&gt; shows how to count them.&lt;/p&gt;
&lt;/details&gt;
&lt;details open&gt;
&lt;summary&gt;Should I write shorter posts for AI search?&lt;/summary&gt;
&lt;p&gt;No. Write posts as long as the question needs, and make every section easy to quote on its own. A long guide with a clear answer under each heading gives a tool many passages to choose from. A short post with no clear answer gives it nothing to lift.&lt;/p&gt;
&lt;/details&gt;
&lt;/section&gt;
&lt;p&gt;To see how much of a blog&#39;s readers already come from AI tools, read our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/search-traffic/&quot;&gt;search traffic charts for one client&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Podcast episode one: put the answer first for AI search</title>
    <id>https://thebigasif.github.io/khalid/templates/almanac/podcast-answer-first/</id>
    <link rel="alternate" type="text/html" href="https://thebigasif.github.io/khalid/templates/almanac/podcast-answer-first/"/>
    <published>2026-10-23T00:00:00Z</published>
    <updated>2026-10-23T00:00:00Z</updated>
    <author>
      <name>Priya Raman</name>
    </author>
    <summary>Episode one of The Ledger, out loud. Priya and Maren explain why you should put the answer first, so AI search tools can find, trust and quote it.</summary>
    <content type="html">&lt;p&gt;In the first episode of The Ledger, out loud, Priya and Maren talk about one habit: putting the answer first. AI search tools build their replies from short passages on many pages. A passage that answers the question plainly, with its source in view, is far easier to quote than one that warms up for three paragraphs.&lt;/p&gt;
&lt;figure class=&quot;audio&quot;&gt;
&lt;figcaption&gt;Episode one: put the answer first for AI search&lt;/figcaption&gt;
&lt;audio controls preload=&quot;none&quot; src=&quot;episode-1-sample.wav&quot;&gt;&lt;a href=&quot;episode-1-sample.wav&quot;&gt;Episode one: put the answer first for AI search&lt;/a&gt;&lt;/audio&gt;
&lt;/figure&gt;
&lt;aside class=&quot;callout callout-note&quot;&gt;
&lt;p&gt;This demo episode plays a short sample sound. The full conversation is in the transcript below.&lt;/p&gt;
&lt;/aside&gt;
&lt;nav class=&quot;toc&quot; aria-label=&quot;Contents&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#show-notes-why-the-answer-first-matters&quot;&gt;Show notes: why the answer first matters&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#chapters&quot;&gt;Chapters&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#the-transcript&quot;&gt;The transcript&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#what-to-do-after-listening&quot;&gt;What to do after listening&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#how-this-page-is-marked-up&quot;&gt;How this page is marked up&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/nav&gt;
&lt;h2 id=&quot;show-notes-why-the-answer-first-matters&quot;&gt;Show notes: why the answer first matters&lt;/h2&gt;
&lt;p&gt;What we cover in this episode:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Why a reply from an AI search tool is built from passages, not whole pages.&lt;/li&gt;
&lt;li&gt;How to write an &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/answer-capsule/&quot;&gt;answer capsule&lt;/a&gt;: a short, plain answer right under a question heading.&lt;/li&gt;
&lt;li&gt;Why a source and a named author make a passage safer to quote.&lt;/li&gt;
&lt;li&gt;What to do with the rest of the post once you put the answer first.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Further listening and reading from our blog:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Maren&#39;s guide on &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/answer-capsules/&quot;&gt;how to write answer capsules under question headings&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Priya&#39;s study of &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/ai-search-sources/&quot;&gt;which pages AI tools choose to cite&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Our full &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/ai-search-guide/&quot;&gt;guide to being found in AI search&lt;/a&gt;, the hub of this series.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chapters&quot;&gt;Chapters&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Why we started a podcast about writing&lt;/li&gt;
&lt;li&gt;How an AI answer is put together&lt;/li&gt;
&lt;li&gt;The paragraph with the answer first&lt;/li&gt;
&lt;li&gt;Sources and names&lt;/li&gt;
&lt;li&gt;What the rest of the post is for&lt;/li&gt;
&lt;li&gt;One thing to try this week&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;the-transcript&quot;&gt;The transcript&lt;/h2&gt;
&lt;details open&gt;
&lt;summary&gt;Read the full transcript&lt;/summary&gt;
&lt;p&gt;&lt;strong&gt;Priya:&lt;/strong&gt; Welcome to The Ledger, out loud. I&#39;m Priya Raman, research editor at Larkspur Studio.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Maren:&lt;/strong&gt; And I&#39;m Maren Okafor, head of content. We&#39;re starting with the habit we ask every writer for: the answer first, everything else after.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Priya:&lt;/strong&gt; Let&#39;s start with why it matters more now. When someone asks an AI search tool a question, the tool doesn&#39;t hand back one page. It reads many pages and builds a reply from short passages. Google&#39;s own features work like this too, such as the &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/ai-overview/&quot;&gt;AI Overview&lt;/a&gt; at the top of some results.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Maren:&lt;/strong&gt; So the unit that gets chosen is the passage, not the post.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Priya:&lt;/strong&gt; Right. Often the tool splits one question into several smaller ones and searches for each. That is called &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/query-fan-out/&quot;&gt;query fan-out&lt;/a&gt;. Your page might be picked to answer just one of those small questions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Maren:&lt;/strong&gt; Which means each section has to stand on its own. If the answer to &amp;quot;how long should a meta description be&amp;quot; only makes sense after the three paragraphs above it, it is hard to lift out.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Priya:&lt;/strong&gt; So what does a section with the answer first look like?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Maren:&lt;/strong&gt; The heading asks the question in the reader&#39;s words. The first two or three sentences answer it plainly. No &amp;quot;great question&amp;quot;, no history. Then the detail comes after: the reasons, the exceptions, the example.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Priya:&lt;/strong&gt; How long is that first answer?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Maren:&lt;/strong&gt; Our house rule is forty to sixty words. Long enough to be complete, short enough to quote whole. Khalid&#39;s linter checks it for us, so it never slips.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Priya:&lt;/strong&gt; And it should make sense out of context. If you read only that paragraph, do you know what &amp;quot;it&amp;quot; refers to?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Maren:&lt;/strong&gt; That&#39;s the test I use most. I copy the paragraph into a blank note. If it still answers the question, it&#39;s done. If it says &amp;quot;as we saw above&amp;quot;, it&#39;s not.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Priya:&lt;/strong&gt; Let&#39;s talk about sources. In my work on how these tools cite pages, the passages they quote tend to state a fact plainly and show where it came from.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Maren:&lt;/strong&gt; Which is what a good editor asks for anyway.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Priya:&lt;/strong&gt; Exactly. A number with a link to where it came from is easier to trust than a bare number. And a page with a named author, who has real experience of the subject, gives the reader a reason to believe it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Maren:&lt;/strong&gt; Google says much the same. Its guidance on AI features says the usual good practice applies, and there&#39;s no special trick. We link it in the notes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Priya:&lt;/strong&gt; So nobody needs a separate &amp;quot;AI version&amp;quot; of their post?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Maren:&lt;/strong&gt; No. Write one good page. Make each section answer one question, plainly, with its source. That serves the skimmer, the search engine and the AI tool at once.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Priya:&lt;/strong&gt; What about the rest of the post? If you put the answer first, why would anyone keep reading?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Maren:&lt;/strong&gt; Because the answer is the start, not the whole job. Below it you give what a short reply can&#39;t: the worked example, the step-by-step, your own data, the edge cases. That is where you add something new, what we call &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/information-gain/&quot;&gt;information gain&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Priya:&lt;/strong&gt; And that&#39;s often what gets a page cited over a dozen others saying the same thing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Maren:&lt;/strong&gt; If ten pages give the same answer, the one with a real example from real work has a reason to be chosen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Priya:&lt;/strong&gt; Any traps?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Maren:&lt;/strong&gt; Two. First, writing the question heading and then not answering it. The heading promises, the paragraph dodges. Second, stuffing every section with the same keyword. It reads badly and helps no one.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Priya:&lt;/strong&gt; And from my side: don&#39;t invent numbers to sound precise. If you don&#39;t have a source, say it&#39;s an example. A made-up figure is worse than none, because once it&#39;s quoted, it travels.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Maren:&lt;/strong&gt; So, one thing to try this week?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Priya:&lt;/strong&gt; Pick your best post. Find the three questions it answers. Under each heading, rewrite the first paragraph so it answers in a few plain sentences.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Maren:&lt;/strong&gt; Then copy each one into a blank note and check it still makes sense alone.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Priya:&lt;/strong&gt; That&#39;s it for episode one. Thanks for listening.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Maren:&lt;/strong&gt; See you next time.&lt;/p&gt;
&lt;/details&gt;
&lt;h2 id=&quot;what-to-do-after-listening&quot;&gt;What to do after listening&lt;/h2&gt;
&lt;p&gt;Pick one post and try the exercise from the end of the episode: the answer first under every question heading. Then read Google&#39;s own page on &lt;a href=&quot;https://developers.google.com/search/docs/appearance/ai-features&quot;&gt;AI features and your website&lt;/a&gt;, which Maren mentions. It confirms that good pages need no special treatment to appear in AI search features.&lt;/p&gt;
&lt;h2 id=&quot;how-this-page-is-marked-up&quot;&gt;How this page is marked up&lt;/h2&gt;
&lt;p&gt;This page carries &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/structured-data/&quot;&gt;structured data for a podcast episode&lt;/a&gt;. It names the episode, its number, the show it belongs to and the audio file, so podcast apps and search engines can place it. Khalid writes it from the post&#39;s settings.&lt;/p&gt;
&lt;form class=&quot;subscribe&quot; method=&quot;post&quot; action=&quot;/subscribe&quot;&gt;
&lt;p&gt;&lt;label for=&quot;subscribe-1-email&quot;&gt;Your email address&lt;/label&gt;
&lt;input id=&quot;subscribe-1-email&quot; name=&quot;email&quot; type=&quot;email&quot; autocomplete=&quot;email&quot; required /&gt;&lt;/p&gt;
&lt;p class=&quot;form-trap&quot; aria-hidden=&quot;true&quot;&gt;&lt;label for=&quot;subscribe-1-homepage&quot;&gt;Leave this empty&lt;/label&gt;
&lt;input id=&quot;subscribe-1-homepage&quot; name=&quot;homepage&quot; type=&quot;text&quot; tabindex=&quot;-1&quot; autocomplete=&quot;off&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;button type=&quot;submit&quot;&gt;Get the next episode by email&lt;/button&gt;&lt;/p&gt;
&lt;/form&gt;
</content>
  </entry>
  <entry>
    <title>The content brief template we use for every post</title>
    <id>https://thebigasif.github.io/khalid/templates/almanac/content-brief-template/</id>
    <link rel="alternate" type="text/html" href="https://thebigasif.github.io/khalid/templates/almanac/content-brief-template/"/>
    <published>2026-10-20T00:00:00Z</published>
    <updated>2026-10-20T00:00:00Z</updated>
    <author>
      <name>Maren Okafor</name>
    </author>
    <summary>The content brief template Larkspur Studio fills in before any post is written, section by section, with a finished example you can copy.</summary>
    <content type="html">&lt;p&gt;The content brief template Larkspur Studio fills in before any post is written, section by section, with a finished example you can copy.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>Video notes: debugging INP with field data</title>
    <id>https://thebigasif.github.io/khalid/templates/almanac/inp-video-notes/</id>
    <link rel="alternate" type="text/html" href="https://thebigasif.github.io/khalid/templates/almanac/inp-video-notes/"/>
    <published>2026-10-16T00:00:00Z</published>
    <updated>2026-10-16T00:00:00Z</updated>
    <author>
      <name>Tomas Lindqvist</name>
    </author>
    <summary>Our notes on debugging INP on a blog. Read the field data, split a slow tap into its three phases, and find the cause in Chrome DevTools.</summary>
    <content type="html">&lt;p&gt;Debugging INP starts with field data, not with a lab test. Field data tells you which pages feel slow to real readers and on which devices. Then you reproduce one slow tap in Chrome DevTools, split it into its three phases, and fix the phase that takes longest. These are our notes, next to a talk from the Chrome team.&lt;/p&gt;
&lt;figure class=&quot;embed embed-wide&quot;&gt;
&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/xfjumh8ySRY&quot; title=&quot;New field insights for debugging INP&quot; width=&quot;560&quot; height=&quot;315&quot; loading=&quot;lazy&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; sandbox=&quot;allow-scripts allow-same-origin allow-popups allow-presentation&quot; allow=&quot;encrypted-media; fullscreen; picture-in-picture&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=xfjumh8ySRY&quot;&gt;New field insights for debugging INP&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;aside class=&quot;callout callout-note&quot;&gt;
&lt;p&gt;The video is &amp;quot;New field insights for debugging INP&amp;quot;, a Google I/O 2024 talk by Jeremy Wagner, published on the Chrome for Developers channel. Its listing says it covers new Chrome tools that explain the causes of slow interactions, and a release of the web-vitals JavaScript library that gathers those details from real users. The notes below are our own advice, not a summary of the talk.&lt;/p&gt;
&lt;/aside&gt;
&lt;nav class=&quot;toc&quot; aria-label=&quot;Contents&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#what-inp-measures&quot;&gt;What INP measures&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#read-the-field-data-first&quot;&gt;Read the field data first&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#the-three-phases-of-an-interaction&quot;&gt;The three phases of an interaction&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#common-causes-on-blogs&quot;&gt;Common causes on blogs&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#find-a-slow-interaction-with-chrome-devtools&quot;&gt;Find a slow interaction with Chrome DevTools&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#keep-it-fixed&quot;&gt;Keep it fixed&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/nav&gt;
&lt;h2 id=&quot;what-inp-measures&quot;&gt;What INP measures&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/interaction-to-next-paint/&quot;&gt;Interaction to Next Paint&lt;/a&gt;, or INP, measures how quickly a page responds when someone clicks, taps or types. The browser times each of those interactions during a visit, from the input to the next frame painted on screen. The page&#39;s score is close to the slowest one. web.dev&#39;s &lt;a href=&quot;https://web.dev/articles/inp&quot;&gt;guide to INP&lt;/a&gt; sets the bands: 200 milliseconds or less is good, and over 500 milliseconds is poor.&lt;/p&gt;
&lt;p&gt;On a blog, the slow interactions are rarely in the article. They hide in the menu button, the search box, the cookie banner and the comment form. Our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/core-web-vitals/&quot;&gt;Core Web Vitals guide for writers&lt;/a&gt; covers the other two metrics.&lt;/p&gt;
&lt;h2 id=&quot;read-the-field-data-first&quot;&gt;Read the field data first&lt;/h2&gt;
&lt;p&gt;Field data comes from real visits. Lab data comes from one test on one machine. For debugging INP you need both, but in that order, because a lab test only shows what you thought to click.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The Chrome UX Report (CrUX).&lt;/strong&gt; Google&#39;s public set of real Chrome user data. &lt;a href=&quot;https://developer.chrome.com/docs/crux&quot;&gt;Its documentation&lt;/a&gt; explains what it covers. PageSpeed Insights shows it at the top of each report, for the page and for the whole site.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Search Console&#39;s Core Web Vitals report.&lt;/strong&gt; It groups your URLs into good, needs improvement and poor, and names the metric at fault. Google&#39;s page on &lt;a href=&quot;https://developers.google.com/search/docs/appearance/core-web-vitals&quot;&gt;Core Web Vitals and search&lt;/a&gt; links to it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Your own field data.&lt;/strong&gt; The web-vitals library can send each visit&#39;s INP to your analytics, with details on the element that was tapped.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Look for a pattern before you open DevTools. Is it every template, or only pages with comments? Phones only, or desktop too? A group of slow URLs that share one template usually share one cause.&lt;/p&gt;
&lt;h2 id=&quot;the-three-phases-of-an-interaction&quot;&gt;The three phases of an interaction&lt;/h2&gt;
&lt;p&gt;Every interaction has three parts. Your fix depends on which one is long.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&quot;/khalid/templates/almanac/inp-video-notes/inp-phases.svg&quot; alt=&quot;A timeline of one tap split into the three INP phases: input delay, processing time and presentation delay, ending at the next paint&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; /&gt;
&lt;figcaption&gt;
&lt;p&gt;One tap, from finger to frame. Look for the longest of the three bars: it tells you where to start.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Input delay.&lt;/strong&gt; The time before the page can even start to respond. It is long when the main thread is busy with other work, such as a script still loading.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Processing time.&lt;/strong&gt; The time the page&#39;s own code takes to handle the event. It is long when a click handler does too much at once.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Presentation delay.&lt;/strong&gt; The time the browser needs to work out the layout and paint the next frame. It is long when the page is huge or a change forces the whole layout to be worked out again.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;common-causes-on-blogs&quot;&gt;Common causes on blogs&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Cause&lt;/th&gt;
&lt;th&gt;Phase it hurts&lt;/th&gt;
&lt;th&gt;What to try&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Heavy third-party scripts: ads, chat widgets, tag managers&lt;/td&gt;
&lt;td&gt;Input delay&lt;/td&gt;
&lt;td&gt;Load them later, or drop the ones nobody uses&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A large DOM: long comment threads, mega menus&lt;/td&gt;
&lt;td&gt;Presentation delay&lt;/td&gt;
&lt;td&gt;Paginate comments, simplify the menu&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Long tasks from theme scripts&lt;/td&gt;
&lt;td&gt;Input delay and processing time&lt;/td&gt;
&lt;td&gt;Split work into smaller pieces, defer what can wait&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A search box that filters on every key press&lt;/td&gt;
&lt;td&gt;Processing time&lt;/td&gt;
&lt;td&gt;Wait until the reader pauses before filtering&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The DOM is the tree of elements the browser builds from your HTML. Every element in it adds work when the layout changes.&lt;/p&gt;
&lt;h2 id=&quot;find-a-slow-interaction-with-chrome-devtools&quot;&gt;Find a slow interaction with Chrome DevTools&lt;/h2&gt;
&lt;ol class=&quot;howto&quot;&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Pick the page and the element&lt;/p&gt;
&lt;p&gt;Use the field data to choose a slow page. Guess the likely element: menu, search, banner or form.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Slow the CPU down&lt;/p&gt;
&lt;p&gt;Open DevTools, go to the Performance panel and turn on CPU throttling. Your laptop is faster than most readers&#39; phones.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Record the interaction&lt;/p&gt;
&lt;p&gt;Start a recording, click the element once, then stop.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Read the Interactions track&lt;/p&gt;
&lt;p&gt;Find your click in the Interactions track. Hover over it to see the three phases and which one is longest.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Look at the main thread&lt;/p&gt;
&lt;p&gt;Under the interaction, find the long tasks. DevTools marks them with a red corner. Open one to see which script ran.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Fix, record again, then wait&lt;/p&gt;
&lt;p&gt;Make one change and record again. Then watch the field data, which takes weeks to catch up.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;keep-it-fixed&quot;&gt;Keep it fixed&lt;/h2&gt;
&lt;p&gt;Most INP regressions on blogs arrive with a new widget, not with new writing. Add a check for new third-party scripts to your &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/technical-seo-audit/&quot;&gt;technical SEO audit&lt;/a&gt;, and test the menu and search on a phone after every theme update. Good speed also supports the &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/structured-data/&quot;&gt;structured data on your pages&lt;/a&gt; and content work you have already done, because a page that responds fast keeps the reader you earned.&lt;/p&gt;
&lt;form class=&quot;subscribe&quot; method=&quot;post&quot; action=&quot;/subscribe&quot;&gt;
&lt;p&gt;&lt;label for=&quot;subscribe-1-email&quot;&gt;Your email address&lt;/label&gt;
&lt;input id=&quot;subscribe-1-email&quot; name=&quot;email&quot; type=&quot;email&quot; autocomplete=&quot;email&quot; required /&gt;&lt;/p&gt;
&lt;p class=&quot;form-trap&quot; aria-hidden=&quot;true&quot;&gt;&lt;label for=&quot;subscribe-1-homepage&quot;&gt;Leave this empty&lt;/label&gt;
&lt;input id=&quot;subscribe-1-homepage&quot; name=&quot;homepage&quot; type=&quot;text&quot; tabindex=&quot;-1&quot; autocomplete=&quot;off&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;button type=&quot;submit&quot;&gt;Get our technical SEO notes&lt;/button&gt;&lt;/p&gt;
&lt;/form&gt;
</content>
  </entry>
  <entry>
    <title>Structured data for blog posts, step by step</title>
    <id>https://thebigasif.github.io/khalid/templates/almanac/structured-data/</id>
    <link rel="alternate" type="text/html" href="https://thebigasif.github.io/khalid/templates/almanac/structured-data/"/>
    <published>2026-10-13T00:00:00Z</published>
    <updated>2026-10-13T00:00:00Z</updated>
    <author>
      <name>Tomas Lindqvist</name>
    </author>
    <summary>What structured data tells search engines about a blog post, which fields matter, and how to add it and test it without breaking anything.</summary>
    <content type="html">&lt;p&gt;Structured data is a short block of code that tells search engines, in their own language, what a page is: a blog post, who wrote it, when it was published and what it is about. Readers never see it. Search engines and AI tools read it first, because it saves them from guessing.&lt;/p&gt;
&lt;p&gt;This post explains what to put in it for a blog post, how to add it, and how to check that it works.&lt;/p&gt;
&lt;h2 id=&quot;what-structured-data-does-for-a-post&quot;&gt;What structured data does for a post&lt;/h2&gt;
&lt;p&gt;A search engine can read your page and work out most of the facts. &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/structured-data/&quot;&gt;Data in this structured form&lt;/a&gt; removes the guesswork. It states the headline, the author, the publish date and the image in a fixed format called schema.org vocabulary, usually written as JSON-LD inside the page.&lt;/p&gt;
&lt;p&gt;That certainty pays off in three places:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Search results.&lt;/strong&gt; The date and the author can appear next to your link, which helps a reader trust it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Author pages.&lt;/strong&gt; Linking each post to a person with a profile shows who stands behind the advice.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI search.&lt;/strong&gt; Tools that quote pages want to name the author and the date. Clear markup hands them both.&lt;/li&gt;
&lt;/ul&gt;
&lt;aside class=&quot;callout callout-note&quot;&gt;
&lt;p&gt;Structured data does not push a page up the rankings on its own. It helps search engines understand and present the page. The writing still has to earn the place.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;the-fields-a-blog-post-needs&quot;&gt;The fields a blog post needs&lt;/h2&gt;
&lt;p&gt;Google&#39;s guide to &lt;a href=&quot;https://developers.google.com/search/docs/appearance/structured-data/article&quot;&gt;article markup&lt;/a&gt; lists no required fields, only recommended ones. In practice these are the ones that matter for a blog post:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;headline:&lt;/strong&gt; the post&#39;s title, as readers see it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;author:&lt;/strong&gt; a person, with a name and a link to their profile page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;datePublished and dateModified:&lt;/strong&gt; when the post went live and when it last changed in a way that matters.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;image:&lt;/strong&gt; the lead image, at a good size.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;publisher:&lt;/strong&gt; the organisation behind the blog.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here is the shape of the markup for one post. The dates and the address are left out to keep it short; a real page fills them in.&lt;/p&gt;
&lt;pre class=&quot;syntax-highlighting&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;hl-source hl-json&quot;&gt;&lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-section hl-dictionary hl-begin hl-json&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-key hl-json&quot;&gt;&lt;span class=&quot;hl-string hl-quoted hl-double hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-json&quot;&gt;&amp;quot;&lt;/span&gt;@context&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-json&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-value hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-separator hl-dictionary hl-key-value hl-json&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;hl-string hl-quoted hl-double hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-json&quot;&gt;&amp;quot;&lt;/span&gt;https://schema.org&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-json&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-punctuation hl-separator hl-dictionary hl-pair hl-json&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-key hl-json&quot;&gt;&lt;span class=&quot;hl-string hl-quoted hl-double hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-json&quot;&gt;&amp;quot;&lt;/span&gt;@type&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-json&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-value hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-separator hl-dictionary hl-key-value hl-json&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;hl-string hl-quoted hl-double hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-json&quot;&gt;&amp;quot;&lt;/span&gt;BlogPosting&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-json&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-punctuation hl-separator hl-dictionary hl-pair hl-json&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-key hl-json&quot;&gt;&lt;span class=&quot;hl-string hl-quoted hl-double hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-json&quot;&gt;&amp;quot;&lt;/span&gt;headline&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-json&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-value hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-separator hl-dictionary hl-key-value hl-json&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;hl-string hl-quoted hl-double hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-json&quot;&gt;&amp;quot;&lt;/span&gt;Structured data for blog posts, step by step&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-json&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-punctuation hl-separator hl-dictionary hl-pair hl-json&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-key hl-json&quot;&gt;&lt;span class=&quot;hl-string hl-quoted hl-double hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-json&quot;&gt;&amp;quot;&lt;/span&gt;author&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-json&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-value hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-separator hl-dictionary hl-key-value hl-json&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-section hl-dictionary hl-begin hl-json&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-key hl-json&quot;&gt;&lt;span class=&quot;hl-string hl-quoted hl-double hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-json&quot;&gt;&amp;quot;&lt;/span&gt;@type&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-json&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-value hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-separator hl-dictionary hl-key-value hl-json&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;hl-string hl-quoted hl-double hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-json&quot;&gt;&amp;quot;&lt;/span&gt;Person&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-json&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-punctuation hl-separator hl-dictionary hl-pair hl-json&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-key hl-json&quot;&gt;&lt;span class=&quot;hl-string hl-quoted hl-double hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-json&quot;&gt;&amp;quot;&lt;/span&gt;name&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-json&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-value hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-separator hl-dictionary hl-key-value hl-json&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;hl-string hl-quoted hl-double hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-json&quot;&gt;&amp;quot;&lt;/span&gt;Tomas Lindqvist&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-json&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-punctuation hl-separator hl-dictionary hl-pair hl-json&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-key hl-json&quot;&gt;&lt;span class=&quot;hl-string hl-quoted hl-double hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-json&quot;&gt;&amp;quot;&lt;/span&gt;url&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-json&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-value hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-separator hl-dictionary hl-key-value hl-json&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;hl-string hl-quoted hl-double hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-json&quot;&gt;&amp;quot;&lt;/span&gt;https://www.example.com/blog/authors/tomas-lindqvist/&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-json&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
  &lt;/span&gt;&lt;span class=&quot;hl-punctuation hl-section hl-dictionary hl-end hl-json&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-punctuation hl-separator hl-dictionary hl-pair hl-json&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-key hl-json&quot;&gt;&lt;span class=&quot;hl-string hl-quoted hl-double hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-json&quot;&gt;&amp;quot;&lt;/span&gt;publisher&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-json&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-value hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-separator hl-dictionary hl-key-value hl-json&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-section hl-dictionary hl-begin hl-json&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-key hl-json&quot;&gt;&lt;span class=&quot;hl-string hl-quoted hl-double hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-json&quot;&gt;&amp;quot;&lt;/span&gt;@type&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-json&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-value hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-separator hl-dictionary hl-key-value hl-json&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;hl-string hl-quoted hl-double hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-json&quot;&gt;&amp;quot;&lt;/span&gt;Organization&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-json&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-punctuation hl-separator hl-dictionary hl-pair hl-json&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-key hl-json&quot;&gt;&lt;span class=&quot;hl-string hl-quoted hl-double hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-json&quot;&gt;&amp;quot;&lt;/span&gt;name&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-json&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-meta hl-structure hl-dictionary hl-value hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-separator hl-dictionary hl-key-value hl-json&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;hl-string hl-quoted hl-double hl-json&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-json&quot;&gt;&amp;quot;&lt;/span&gt;Larkspur Studio&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-json&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
  &lt;/span&gt;&lt;span class=&quot;hl-punctuation hl-section hl-dictionary hl-end hl-json&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;/span&gt;&lt;span class=&quot;hl-punctuation hl-section hl-dictionary hl-end hl-json&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p class=&quot;bookmark&quot;&gt;&lt;a href=&quot;https://schema.org/BlogPosting&quot;&gt;&lt;span class=&quot;bookmark-title&quot;&gt;BlogPosting on schema.org&lt;/span&gt;&lt;span class=&quot;bookmark-description&quot;&gt;Every property a blog post can carry, with what each one means.&lt;/span&gt;&lt;span class=&quot;bookmark-host&quot;&gt;schema.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;hand-written-markup-or-markup-from-your-blog&quot;&gt;Hand-written markup or markup from your blog&lt;/h2&gt;
&lt;p&gt;You can write the block yourself, or let your blogging tool write it from the post&#39;s own fields. Each way has its place.&lt;/p&gt;
&lt;div class=&quot;columns&quot;&gt;
&lt;div class=&quot;column&quot;&gt;
&lt;p class=&quot;column-title&quot;&gt;Written by your blog&lt;/p&gt;
&lt;p&gt;The markup comes from the title, author and dates you already fill in. It never drifts out of step with the page, and nobody has to remember it.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;column&quot;&gt;
&lt;p class=&quot;column-title&quot;&gt;Written by hand&lt;/p&gt;
&lt;p&gt;You can describe things your blog does not know about, such as an event or a product. You also have to keep it correct every time the post changes.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Our advice: let the blog write the markup for every post, and add hand-written blocks only for the rare page that needs more.&lt;/p&gt;
&lt;h2 id=&quot;add-markup-to-a-post-in-five-steps&quot;&gt;Add markup to a post in five steps&lt;/h2&gt;
&lt;ol class=&quot;howto&quot;&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Fill in the post&amp;#39;s own fields&lt;/p&gt;
&lt;p&gt;Give the post a title, an author with a profile page, a publish date and a lead image. Good markup starts with complete fields.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Check what the page already has&lt;/p&gt;
&lt;p&gt;Open the page source and search for &amp;quot;ld+json&amp;quot;. Many blogging tools add the markup for you, and two copies confuse search engines.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Add only what is missing&lt;/p&gt;
&lt;p&gt;If the page has no markup, add one BlogPosting block in the head of the page. Fill in each field from the list above.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Test the page&lt;/p&gt;
&lt;p&gt;Paste the address into Google&#39;s Rich Results Test. Fix every error, then read the warnings and fix the ones that apply.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Keep the dates honest&lt;/p&gt;
&lt;p&gt;Change the modified date only when the content changes in a way a reader would care about. Fixing a typo is not an update.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;details open&gt;
&lt;summary&gt;Why not mark up every page as an article?&lt;/summary&gt;
&lt;p&gt;Markup has to describe what is really on the page. A category page is a list, an about page is about a company, and a product page is a product. Marking them all up as articles is misleading, and search engines can ignore the markup or the page for it.&lt;/p&gt;
&lt;/details&gt;
&lt;h2 id=&quot;mistakes-that-make-search-engines-ignore-the-markup&quot;&gt;Mistakes that make search engines ignore the markup&lt;/h2&gt;
&lt;p&gt;Most broken markup we see comes from a short list of slips:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Markup that disagrees with the page.&lt;/strong&gt; The headline in the code says one thing and the page says another.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Authors without a page.&lt;/strong&gt; A name alone is weak. Link the person to a profile that says who they are.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dates that change every day.&lt;/strong&gt; Some tools set the modified date to today on every visit. Search engines learn to distrust it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copied blocks.&lt;/strong&gt; A template copied from another post still names the old title.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Run the test again after every template change. A small change to the theme can break the markup on every post at once.&lt;/p&gt;
&lt;h2 id=&quot;where-structured-data-fits-with-the-rest&quot;&gt;Where structured data fits with the rest&lt;/h2&gt;
&lt;p&gt;Markup is one part of how a post presents itself in search. The text people see still does the most work: write &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/meta-description/&quot;&gt;a meta description that earns the click&lt;/a&gt; and a clear title before you worry about code.&lt;/p&gt;
&lt;p&gt;Speed matters too. A page that loads slowly gets fetched less often, so pair this work with the habits in our guide to &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/core-web-vitals/&quot;&gt;the three Core Web Vitals&lt;/a&gt;. And because AI tools lean on named authors and dates, clear markup is part of &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/ai-search-sources/&quot;&gt;how AI search decides what to quote&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>The 2026 content benchmark data, free to download</title>
    <id>https://thebigasif.github.io/khalid/templates/almanac/content-benchmark-data/</id>
    <link rel="alternate" type="text/html" href="https://thebigasif.github.io/khalid/templates/almanac/content-benchmark-data/"/>
    <published>2026-10-09T00:00:00Z</published>
    <updated>2026-10-09T00:00:00Z</updated>
    <author>
      <name>Priya Raman</name>
    </author>
    <summary>Download sample rows of our 2026 content benchmark data as a CSV file, with a data dictionary, our method, the licence and how to cite it.</summary>
    <content type="html">&lt;p&gt;This page shares the benchmark data behind our 2026 content benchmark, in the shape we used to count it. You get a CSV file with one row per blog, a data dictionary that explains each column, our method, and the terms for reuse. Open it in any spreadsheet and run your own counts.&lt;/p&gt;
&lt;aside class=&quot;callout callout-warning&quot;&gt;
&lt;p&gt;Larkspur Studio and this benchmark are fictional. The rows are illustrative sample data made for the Khalid demo.&lt;/p&gt;
&lt;/aside&gt;
&lt;nav class=&quot;toc&quot; aria-label=&quot;Contents&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#download-the-benchmark-data&quot;&gt;Download the benchmark data&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#what-the-benchmark-measured&quot;&gt;What the benchmark measured&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#data-dictionary&quot;&gt;Data dictionary&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#work-out-a-median-yourself&quot;&gt;Work out a median yourself&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#method-notes&quot;&gt;Method notes&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#licence-and-reuse&quot;&gt;Licence and reuse&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#credit-us-in-your-own-work&quot;&gt;Credit us in your own work&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#how-this-page-is-marked-up&quot;&gt;How this page is marked up&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/nav&gt;
&lt;h2 id=&quot;download-the-benchmark-data&quot;&gt;Download the benchmark data&lt;/h2&gt;
&lt;p class=&quot;file&quot;&gt;&lt;a href=&quot;benchmark-2026-sample.csv&quot; download&gt;Content benchmark 2026, sample rows (CSV)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The file holds twenty sample rows, not every blog we read in 2026. Each row is one blog, named only by a short code. We never publish the names of the blogs we read. Our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/news/benchmark-data-open/&quot;&gt;news post on opening the data&lt;/a&gt; explains why we share it. The full write-up of the findings lives on its own page, &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/content-benchmark/&quot;&gt;the 2026 content benchmark&lt;/a&gt;, with five findings and what to fix first.&lt;/p&gt;
&lt;h2 id=&quot;what-the-benchmark-measured&quot;&gt;What the benchmark measured&lt;/h2&gt;
&lt;p&gt;We read, in 2026, 140 small business blogs, post by post, all in August. We counted only what any reader can see on the page. The headline findings, all from that 2026 read:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Finding&lt;/th&gt;
&lt;th&gt;Share of blogs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;No author name on posts&lt;/td&gt;
&lt;td&gt;61% in 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Meta description blank on at least one post in five&lt;/td&gt;
&lt;td&gt;54% in 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No post updated in twelve months&lt;/td&gt;
&lt;td&gt;38% in 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A content calendar shared with the whole team&lt;/td&gt;
&lt;td&gt;23% in 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Numbers in posts linked to a source&lt;/td&gt;
&lt;td&gt;19% in 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Posts updated within the year earned, in 2026, 1.6 times the search clicks of untouched posts at the median. The sample rows do not hold click data, so you cannot rebuild that figure from this file.&lt;/p&gt;
&lt;h2 id=&quot;data-dictionary&quot;&gt;Data dictionary&lt;/h2&gt;
&lt;p&gt;Each column in the benchmark data, what it holds and the values it can take.&lt;/p&gt;
&lt;div class=&quot;table-fold&quot;&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Column&lt;/th&gt;
&lt;th&gt;What it means&lt;/th&gt;
&lt;th&gt;Values&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;blog_id&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;A code for the blog, so rows can be cited without naming anyone&lt;/td&gt;
&lt;td&gt;A short code, one per blog&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sector&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The kind of business behind the blog&lt;/td&gt;
&lt;td&gt;software, professional services, manufacturing, logistics&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;posts_published_12m&lt;/code&gt;, counted in 2026&lt;/td&gt;
&lt;td&gt;Posts published in the year before the read&lt;/td&gt;
&lt;td&gt;A whole number&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;details&gt;
&lt;summary class=&quot;table-fold-more&quot;&gt;Show the other columns&lt;/summary&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Column&lt;/th&gt;
&lt;th&gt;What it means&lt;/th&gt;
&lt;th&gt;Values&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;has_author_names&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Whether most posts show the writer&#39;s name&lt;/td&gt;
&lt;td&gt;yes, no&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;blank_meta_share&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The share of posts we checked with no meta description&lt;/td&gt;
&lt;td&gt;A decimal, from none to all&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;updated_in_12m&lt;/code&gt;, checked in 2026&lt;/td&gt;
&lt;td&gt;Whether any post shows an update in the past twelve months&lt;/td&gt;
&lt;td&gt;yes, no&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;shared_calendar&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Whether the team said it keeps one calendar everyone can see&lt;/td&gt;
&lt;td&gt;yes, no&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sourced_numbers&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Whether most numbers in the posts link to a source&lt;/td&gt;
&lt;td&gt;yes, no&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/details&gt;
&lt;/div&gt;
&lt;p&gt;The column on updates is our simplest sign of &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/content-decay/&quot;&gt;content decay&lt;/a&gt;: an archive nobody has touched in a year tends to drift out of date.&lt;/p&gt;
&lt;h2 id=&quot;work-out-a-median-yourself&quot;&gt;Work out a median yourself&lt;/h2&gt;
&lt;p&gt;A median is the middle value once you sort a column. It suits blog counts better than an average, because one very busy blog can drag an average up. Sort the column of posts published from low to high. With twenty rows there is no single middle row, so take the two middle values and halve their sum.&lt;/p&gt;
&lt;figure class=&quot;maths&quot;&gt;
&lt;math display=&quot;block&quot;&gt;&lt;mtext&gt;median&lt;/mtext&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mfrac&gt;&lt;mrow&gt;&lt;msub&gt;&lt;mi&gt;x&lt;/mi&gt;&lt;mn&gt;10&lt;/mn&gt;&lt;/msub&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;x&lt;/mi&gt;&lt;mn&gt;11&lt;/mn&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/mfrac&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mfrac&gt;&lt;mrow&gt;&lt;mn&gt;24&lt;/mn&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mn&gt;24&lt;/mn&gt;&lt;/mrow&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/mfrac&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mn&gt;24&lt;/mn&gt;&lt;/math&gt;
&lt;figcaption&gt;Median&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;So the median sample blog published 24 posts (2026), about two a month. That matches the median we reported for the full 2026 read.&lt;/p&gt;
&lt;aside class=&quot;callout callout-tip&quot;&gt;
&lt;p&gt;In a spreadsheet, the MEDIAN function does the same sum in one step. Try it on &lt;code&gt;blank_meta_share&lt;/code&gt;, then split the result by sector with a filter.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;method-notes&quot;&gt;Method notes&lt;/h2&gt;
&lt;aside class=&quot;callout callout-note&quot;&gt;
&lt;p&gt;&lt;strong&gt;How we counted.&lt;/strong&gt; The Larkspur content benchmark reads the public blogs of small companies that sell to other businesses, once a year. We count what any reader can see on the page. We do not use anyone&#39;s private analytics, and we name no company.&lt;/p&gt;
&lt;/aside&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Who we read.&lt;/strong&gt; Public blogs of small companies that sell to other businesses, in four sectors. We picked them from client enquiries and public directories, so they are not a random sample.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When.&lt;/strong&gt; Every blog was read during August 2026. A post counts as updated only if the page shows a date of change.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How.&lt;/strong&gt; Two editors read each blog. Where they disagreed, a third read it and decided.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;One column we asked about.&lt;/strong&gt; A calendar is not visible on a blog, so &lt;code&gt;shared_calendar&lt;/code&gt; comes from a one-line question we sent each team.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What we did not measure.&lt;/strong&gt; Traffic, rankings and links. Those need access to each site&#39;s own tools, which we did not have.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The benchmark data has limits you should keep in mind. Our blogs are small and mostly British. The patterns may not hold for large publishers or other markets.&lt;/p&gt;
&lt;h2 id=&quot;licence-and-reuse&quot;&gt;Licence and reuse&lt;/h2&gt;
&lt;p&gt;You may share and adapt the benchmark data for any purpose under the &lt;a href=&quot;https://creativecommons.org/licenses/by/4.0/&quot;&gt;Creative Commons Attribution 4.0 licence&lt;/a&gt;. The one condition is credit: name Larkspur Studio and link to this page.&lt;/p&gt;
&lt;h2 id=&quot;credit-us-in-your-own-work&quot;&gt;Credit us in your own work&lt;/h2&gt;
&lt;p&gt;Copy this line into your notes or reference list:&lt;/p&gt;
&lt;pre class=&quot;syntax-highlighting&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;&lt;span class=&quot;hl-text hl-plain&quot;&gt;Larkspur Studio (2026). Content benchmark 2026, sample rows. Larkspur Ledger. https://www.example.com/blog/content-benchmark-data/
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;how-this-page-is-marked-up&quot;&gt;How this page is marked up&lt;/h2&gt;
&lt;p&gt;This page carries &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/structured-data/&quot;&gt;structured data for a dataset&lt;/a&gt;. It names the file, its licence, the month it covers and the columns it holds, so dataset search tools can list it. Khalid writes it from the post&#39;s settings.&lt;/p&gt;
&lt;p&gt;If the numbers prompt you to act, our guides on &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/content-refresh/&quot;&gt;refreshing posts that slipped&lt;/a&gt; and &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/content-calendar/&quot;&gt;planning a calendar your team will keep&lt;/a&gt; are good next steps. The wider &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/content-strategy-guide/&quot;&gt;content strategy guide&lt;/a&gt; puts both in context.&lt;/p&gt;
&lt;form class=&quot;subscribe&quot; method=&quot;post&quot; action=&quot;/subscribe&quot;&gt;
&lt;p&gt;&lt;label for=&quot;subscribe-1-email&quot;&gt;Your email address&lt;/label&gt;
&lt;input id=&quot;subscribe-1-email&quot; name=&quot;email&quot; type=&quot;email&quot; autocomplete=&quot;email&quot; required /&gt;&lt;/p&gt;
&lt;p class=&quot;form-trap&quot; aria-hidden=&quot;true&quot;&gt;&lt;label for=&quot;subscribe-1-homepage&quot;&gt;Leave this empty&lt;/label&gt;
&lt;input id=&quot;subscribe-1-homepage&quot; name=&quot;homepage&quot; type=&quot;text&quot; tabindex=&quot;-1&quot; autocomplete=&quot;off&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;button type=&quot;submit&quot;&gt;Get next year&amp;#39;s data first&lt;/button&gt;&lt;/p&gt;
&lt;/form&gt;
</content>
  </entry>
  <entry>
    <title>The 2026 content benchmark: what 140 blogs show</title>
    <id>https://thebigasif.github.io/khalid/templates/almanac/content-benchmark/</id>
    <link rel="alternate" type="text/html" href="https://thebigasif.github.io/khalid/templates/almanac/content-benchmark/"/>
    <published>2026-10-06T00:00:00Z</published>
    <updated>2026-10-06T00:00:00Z</updated>
    <author>
      <name>Priya Raman</name>
    </author>
    <summary>Our content benchmark read 140 small business blogs in 2026. What they publish, what they skip, and the habits that set the strongest blogs apart.</summary>
    <content type="html">&lt;p&gt;The Larkspur content benchmark is our yearly look at how small companies that sell to other businesses run their blogs. During August 2026, 140 of their public blogs went through our hands. We read each one post by post and counted what any reader can see: who wrote each post, when it was last updated, how it answers its question and where its numbers come from.&lt;/p&gt;
&lt;p&gt;This is the summary. Members get the full tables by category.&lt;/p&gt;
&lt;aside class=&quot;callout callout-note&quot;&gt;
&lt;p&gt;&lt;strong&gt;How we counted.&lt;/strong&gt; The Larkspur content benchmark reads the public blogs of small companies that sell to other businesses, once a year. We count what any reader can see on the page. We do not use anyone&#39;s private analytics, and we name no company.&lt;/p&gt;
&lt;/aside&gt;
&lt;nav class=&quot;toc&quot; aria-label=&quot;Contents&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#five-findings-from-the-content-benchmark&quot;&gt;Five findings from the content benchmark&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#who-wrote-this-post&quot;&gt;Who wrote this post&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#the-forgotten-archive&quot;&gt;The forgotten archive&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#planning-and-pace&quot;&gt;Planning and pace&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#the-parts-searchers-see-first&quot;&gt;The parts searchers see first&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#sources-and-ai-search&quot;&gt;Sources and AI search&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#what-the-content-benchmark-means-for-your-blog&quot;&gt;What the content benchmark means for your blog&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/nav&gt;
&lt;aside class=&quot;callout callout-summary&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Most blogs hide their writers.&lt;/strong&gt; In 2026, 61% of the blogs put no author name on their posts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Old posts are left alone.&lt;/strong&gt; In 2026, 38% of the blogs had not updated any post in twelve months.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Updates pay.&lt;/strong&gt; Posts updated within the year earned, in 2026, 1.6 times the search clicks of untouched ones at the median.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Few plan together.&lt;/strong&gt; In 2026, 23% used a content calendar the whole team could see.&lt;/li&gt;
&lt;/ul&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;five-findings-from-the-content-benchmark&quot;&gt;Five findings from the content benchmark&lt;/h2&gt;
&lt;figure&gt;
&lt;img src=&quot;/khalid/templates/almanac/content-benchmark/chart.svg&quot; alt=&quot;Bar chart of the five main content benchmark findings, from author names to sourced numbers&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; /&gt;
&lt;figcaption&gt;
&lt;p&gt;The share of the blogs we read that showed each habit. The longest bar is a gap, not a strength: most blogs left out the author&#39;s name.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Finding&lt;/th&gt;
&lt;th&gt;Share of blogs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;No author name on posts&lt;/td&gt;
&lt;td&gt;61% in 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Meta description blank on at least one post in five&lt;/td&gt;
&lt;td&gt;54% in 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No post updated in twelve months&lt;/td&gt;
&lt;td&gt;38% in 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A content calendar shared with the whole team&lt;/td&gt;
&lt;td&gt;23% in 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Numbers in posts linked to a source&lt;/td&gt;
&lt;td&gt;19% in 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;who-wrote-this-post&quot;&gt;Who wrote this post&lt;/h2&gt;
&lt;p&gt;Readers trust a person more than a logo, and search engines look for signs that a real expert stands behind a page. Even so, most blogs we read in 2026, 61% of them, showed no author at all. Fewer still had an author page with the writer&#39;s experience.&lt;/p&gt;
&lt;aside class=&quot;callout callout-stat&quot;&gt;
&lt;p&gt;In 2026, &lt;strong&gt;61%&lt;/strong&gt; of the small business blogs we read put no author name on their posts.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;The fix the content benchmark points to takes an afternoon: a name on each post, a short bio, and a page per writer that says why they know the subject.&lt;/p&gt;
&lt;h2 id=&quot;the-forgotten-archive&quot;&gt;The forgotten archive&lt;/h2&gt;
&lt;p&gt;The most common habit the content benchmark found was neglect. Blogs kept publishing, but they rarely went back. In 2026, 38% had not changed a single post in the past twelve months, including posts that named prices or tools that no longer exist.&lt;/p&gt;
&lt;aside class=&quot;callout callout-stat&quot;&gt;
&lt;p&gt;In 2026, &lt;strong&gt;1.6 times&lt;/strong&gt; the search clicks went to posts updated within the year, compared with untouched posts, at the median.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;We cannot prove the update caused every extra click. Posts worth updating may have been stronger to begin with. But the pattern held in every category we read, and it matches what we see with clients. Our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/content-refresh/&quot;&gt;playbook for posts that slipped&lt;/a&gt; shows how to choose which ones to update first.&lt;/p&gt;
&lt;h2 id=&quot;planning-and-pace&quot;&gt;Planning and pace&lt;/h2&gt;
&lt;p&gt;The median blog in our sample published, in 2026, 2 posts a month, usually in bursts followed by long gaps. Only 23% in 2026 used a content calendar shared with the whole team. The blogs with a shared plan published at a steadier pace and had fewer gaps longer than two months.&lt;/p&gt;
&lt;p&gt;If your team plans in a chat thread, our guide to &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/content-calendar/&quot;&gt;a calendar a small team can keep&lt;/a&gt; is a gentle place to start.&lt;/p&gt;
&lt;h2 id=&quot;the-parts-searchers-see-first&quot;&gt;The parts searchers see first&lt;/h2&gt;
&lt;p&gt;Titles and descriptions are the first thing a searcher reads, and many blogs left them to chance. In 2026, 54% of the blogs left the meta description blank on at least one post in five. Search engines then write their own snippet from the page, which rarely sells the click.&lt;/p&gt;
&lt;p&gt;Titles fared better, but many were vague labels like &amp;quot;Our thoughts on pricing&amp;quot;. Our post on &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/writing-headlines/&quot;&gt;headlines that earn the click&lt;/a&gt; shows what works instead.&lt;/p&gt;
&lt;h2 id=&quot;sources-and-ai-search&quot;&gt;Sources and AI search&lt;/h2&gt;
&lt;p&gt;Only 19% of the blogs in 2026 linked their numbers to a source. That matters more each year. AI search tools prefer passages that state a fact plainly and show where it comes from, so an unsourced number is less likely to be quoted. Read &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/ai-search-sources/&quot;&gt;how AI search picks which pages to quote&lt;/a&gt; for the full picture, and &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/ai-search-guide/&quot;&gt;our guide to writing for AI search&lt;/a&gt; for what to change. Sample rows from this study are now &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/news/benchmark-data-open/&quot;&gt;free to download&lt;/a&gt;.&lt;/p&gt;
&lt;section class=&quot;gated&quot;&gt;
&lt;p class=&quot;gated-note&quot;&gt;Members can read the full benchmark tables by category.&lt;/p&gt;
&lt;form class=&quot;subscribe&quot; method=&quot;post&quot; action=&quot;/subscribe&quot;&gt;
&lt;input type=&quot;hidden&quot; name=&quot;back&quot; value=&quot;/khalid/templates/almanac/content-benchmark/&quot; /&gt;
&lt;p&gt;&lt;label for=&quot;subscribe-1-email&quot;&gt;Your email address&lt;/label&gt;
&lt;input id=&quot;subscribe-1-email&quot; name=&quot;email&quot; type=&quot;email&quot; autocomplete=&quot;email&quot; required /&gt;&lt;/p&gt;
&lt;p class=&quot;form-trap&quot; aria-hidden=&quot;true&quot;&gt;&lt;label for=&quot;subscribe-1-homepage&quot;&gt;Leave this empty&lt;/label&gt;
&lt;input id=&quot;subscribe-1-homepage&quot; name=&quot;homepage&quot; type=&quot;text&quot; tabindex=&quot;-1&quot; autocomplete=&quot;off&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;button type=&quot;submit&quot;&gt;Read the full tables&lt;/button&gt;&lt;/p&gt;
&lt;/form&gt;
&lt;/section&gt;
&lt;header class=&quot;banner&quot;&gt;
&lt;img src=&quot;/khalid/templates/almanac/content-benchmark/chart.svg&quot; alt=&quot;The content benchmark chart, shown again as the banner for the action plan&quot; decoding=&quot;async&quot; /&gt;
&lt;h2 id=&quot;what-the-content-benchmark-means-for-your-blog&quot;&gt;What the content benchmark means for your blog&lt;/h2&gt;
&lt;p&gt;Four gaps, ranked from the cheapest to close.&lt;/p&gt;
&lt;/header&gt;
&lt;p&gt;You do not need to fix everything at once. Pick the gap that is cheapest to close:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Add author names and bios.&lt;/strong&gt; An afternoon of work, and it helps every post at once.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Refresh your best old post.&lt;/strong&gt; Start with the one that once did well and has slipped.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Write the missing descriptions.&lt;/strong&gt; Ten minutes per post, and you choose what searchers read.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Share one calendar.&lt;/strong&gt; One sheet the whole team can see, with an owner per post.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Measure the effect the same way we do: count the cost and the results, post by post. Our guide to &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/content-roi/&quot;&gt;return on content&lt;/a&gt; shows how.&lt;/p&gt;
&lt;p&gt;For a much larger view of how content teams work, the &lt;a href=&quot;https://contentmarketinginstitute.com/research/&quot;&gt;Content Marketing Institute&#39;s research&lt;/a&gt; publishes yearly surveys of marketers.&lt;/p&gt;
&lt;form class=&quot;subscribe&quot; method=&quot;post&quot; action=&quot;/subscribe&quot;&gt;
&lt;p&gt;&lt;label for=&quot;subscribe-2-email&quot;&gt;Your email address&lt;/label&gt;
&lt;input id=&quot;subscribe-2-email&quot; name=&quot;email&quot; type=&quot;email&quot; autocomplete=&quot;email&quot; required /&gt;&lt;/p&gt;
&lt;p class=&quot;form-trap&quot; aria-hidden=&quot;true&quot;&gt;&lt;label for=&quot;subscribe-2-homepage&quot;&gt;Leave this empty&lt;/label&gt;
&lt;input id=&quot;subscribe-2-homepage&quot; name=&quot;homepage&quot; type=&quot;text&quot; tabindex=&quot;-1&quot; autocomplete=&quot;off&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;button type=&quot;submit&quot;&gt;Get next year&amp;#39;s benchmark first&lt;/button&gt;&lt;/p&gt;
&lt;/form&gt;
</content>
  </entry>
  <entry>
    <title>How to set up Google Search Console in 15 minutes</title>
    <id>https://thebigasif.github.io/khalid/templates/almanac/search-console-setup/</id>
    <link rel="alternate" type="text/html" href="https://thebigasif.github.io/khalid/templates/almanac/search-console-setup/"/>
    <published>2026-10-02T00:00:00Z</published>
    <updated>2026-10-02T00:00:00Z</updated>
    <author>
      <name>Tomas Lindqvist</name>
    </author>
    <summary>Add your blog to Google Search Console, prove you own it, submit a sitemap and check your pages are indexed, in six short steps.</summary>
    <content type="html">&lt;p&gt;Google Search Console is Google&#39;s free dashboard for site owners. It shows which searches bring people to your blog and warns you when Google cannot index a page. Setting it up takes about a quarter of an hour: add your site, prove you own it, submit your sitemap, then check the reports. This guide walks through each step.&lt;/p&gt;
&lt;nav class=&quot;toc&quot; aria-label=&quot;Contents&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#before-you-start&quot;&gt;Before you start&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#domain-property-or-url-prefix-property&quot;&gt;Domain property or URL-prefix property&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#set-it-up-in-six-steps&quot;&gt;Set it up in six steps&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#what-to-look-at-in-the-first-week&quot;&gt;What to look at in the first week&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#questions-about-search-console&quot;&gt;Questions about Search Console&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/nav&gt;
&lt;aside class=&quot;callout callout-summary&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Choose a domain property&lt;/strong&gt; if you can edit your DNS. It covers every version of your site at once.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Verify once and leave the proof in place.&lt;/strong&gt; If you remove it, you lose access.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Submit your sitemap&lt;/strong&gt; so Google finds every post.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Check two reports&lt;/strong&gt; in the first week: page indexing and performance.&lt;/li&gt;
&lt;/ul&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;before-you-start&quot;&gt;Before you start&lt;/h2&gt;
&lt;p&gt;You need three things: a Google account, the address of your blog, and access to either your domain&#39;s DNS settings or your site&#39;s HTML. DNS is the system that points your domain name to your server. You change it where you bought the domain, or wherever your host manages it.&lt;/p&gt;
&lt;p&gt;If you cannot reach either one, ask whoever runs your site. Verification is the only step that needs it.&lt;/p&gt;
&lt;h2 id=&quot;domain-property-or-url-prefix-property&quot;&gt;Domain property or URL-prefix property&lt;/h2&gt;
&lt;p&gt;Search Console offers two kinds of property, which is its word for a site you track. Pick the one that fits your access.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Point&lt;/th&gt;
&lt;th&gt;Domain property&lt;/th&gt;
&lt;th&gt;URL-prefix property&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;What it covers&lt;/td&gt;
&lt;td&gt;Every version: http, https, www, no www and every subdomain&lt;/td&gt;
&lt;td&gt;Only addresses that start with the exact prefix you type&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;How you verify&lt;/td&gt;
&lt;td&gt;A DNS TXT record only&lt;/td&gt;
&lt;td&gt;An HTML tag, an HTML file, analytics, a tag manager or DNS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Best for&lt;/td&gt;
&lt;td&gt;Owners who can edit DNS&lt;/td&gt;
&lt;td&gt;Owners who can edit the site but not DNS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Main drawback&lt;/td&gt;
&lt;td&gt;Needs DNS access&lt;/td&gt;
&lt;td&gt;Misses data from other versions of the site&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;We use a domain property for every client site where we can. One property shows all your data, so nothing hides on a version you forgot to add.&lt;/p&gt;
&lt;h2 id=&quot;set-it-up-in-six-steps&quot;&gt;Set it up in six steps&lt;/h2&gt;
&lt;ol class=&quot;howto&quot;&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Add a property&lt;/p&gt;
&lt;p&gt;Open Search Console and sign in with your Google account. Choose &lt;strong&gt;Add property&lt;/strong&gt;. Type your bare domain, such as &lt;code&gt;example.com&lt;/code&gt;, in the domain box, or your full address, such as &lt;code&gt;https://www.example.com/&lt;/code&gt;, in the URL-prefix box.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Verify that you own the site&lt;/p&gt;
&lt;p&gt;For a domain property, copy the TXT record that Search Console shows you. Add it in your DNS settings as a new TXT record on the bare domain, save, and press &lt;strong&gt;Verify&lt;/strong&gt;. For a URL-prefix property, the quickest way is the HTML tag: paste the meta tag into the head of your home page, publish, and press &lt;strong&gt;Verify&lt;/strong&gt;. You can upload the HTML file to your site&#39;s root folder instead.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Submit your sitemap&lt;/p&gt;
&lt;p&gt;Open &lt;strong&gt;Sitemaps&lt;/strong&gt; in the menu. Type the address of your sitemap, often &lt;code&gt;sitemap.xml&lt;/code&gt;, and press &lt;strong&gt;Submit&lt;/strong&gt;. Most blog engines, Khalid included, write this file for you. An &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/xml-sitemap/&quot;&gt;XML sitemap&lt;/a&gt; lists every page you want found, so Google does not have to guess.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Check the page indexing report&lt;/p&gt;
&lt;p&gt;Open &lt;strong&gt;Pages&lt;/strong&gt; under Indexing. It shows how many pages are indexed and lists the reasons others are not. A new site needs a few days before this fills in, so come back at the end of the week.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Inspect one URL&lt;/p&gt;
&lt;p&gt;Paste the address of your newest post into the search bar at the top. Search Console tells you if the page is indexed and which &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/canonical-url/&quot;&gt;main version of the page&lt;/a&gt; Google chose. If it is not indexed, press &lt;strong&gt;Request indexing&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Add a teammate with restricted access&lt;/p&gt;
&lt;p&gt;Open &lt;strong&gt;Settings&lt;/strong&gt;, then &lt;strong&gt;Users and permissions&lt;/strong&gt;, and choose &lt;strong&gt;Add user&lt;/strong&gt;. Type their email address and choose &lt;strong&gt;Restricted&lt;/strong&gt;. They can see most data but cannot change settings or add users. Keep full access for the people who need it.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;figure&gt;
&lt;img src=&quot;/khalid/templates/almanac/search-console-setup/verify-screen.svg&quot; alt=&quot;Mock Search Console verification screen for a domain property, with the TXT record, a copy button and a Verify button, each marked with a number&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; /&gt;
&lt;figcaption&gt;
&lt;p&gt;The verification step for a domain property. Copy the record first, add it at your DNS host and wait a few minutes, then press Verify. If it fails, wait an hour and try again: DNS changes can take time to spread.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Google&#39;s help page on &lt;a href=&quot;https://support.google.com/webmasters/answer/9008080&quot;&gt;how to verify a site you own&lt;/a&gt; lists every method and what to do if one fails.&lt;/p&gt;
&lt;aside class=&quot;callout callout-warning&quot;&gt;
&lt;p&gt;&lt;strong&gt;Leave the verification record in place.&lt;/strong&gt; Search Console checks it from time to time. If you delete the TXT record, the meta tag or the file, you lose access to the property. This often happens during a redesign, when a new theme drops the meta tag. A domain property with a DNS record avoids that trap.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;what-to-look-at-in-the-first-week&quot;&gt;What to look at in the first week&lt;/h2&gt;
&lt;p&gt;Data in Search Console starts to arrive within a few days. In the first week, look at two things.&lt;/p&gt;
&lt;p&gt;First, the page indexing report. If a post you care about is missing, the reason often explains the fix, such as a page marked &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/noindex/&quot;&gt;Noindex&lt;/a&gt; by mistake, or a page that redirects.&lt;/p&gt;
&lt;p&gt;Second, the performance report. It lists the searches that showed your pages, with clicks and impressions. Do not judge anything yet. Come back after a month, when there is enough data to see a pattern. Our post on &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/search-intent/&quot;&gt;what searchers want from a page&lt;/a&gt; shows how to read those searches and plan the next post.&lt;/p&gt;
&lt;h2 id=&quot;questions-about-search-console&quot;&gt;Questions about Search Console&lt;/h2&gt;
&lt;section class=&quot;faq&quot;&gt;
&lt;details open&gt;
&lt;summary&gt;Is Google Search Console free?&lt;/summary&gt;
&lt;p&gt;Yes. Search Console is free for every site, with no paid plan. You only need a Google account and a way to prove you own the site. It does not change how Google ranks your pages: it shows you what Google already sees, so you can fix problems and spot what works.&lt;/p&gt;
&lt;/details&gt;
&lt;details open&gt;
&lt;summary&gt;How long does verification take?&lt;/summary&gt;
&lt;p&gt;An HTML tag or file usually verifies at once, as soon as the page is live. A DNS record can take longer, because changes take time to reach every server. If verification fails, wait an hour and press Verify again before you look for a mistake in the record.&lt;/p&gt;
&lt;/details&gt;
&lt;details open&gt;
&lt;summary&gt;Should I also set up Bing Webmaster Tools?&lt;/summary&gt;
&lt;p&gt;Yes, once Search Console is running. Bing&#39;s tool is free and can import your sites from Search Console, so it takes a few minutes. It adds link and keyword reports. Our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/search-console-vs-bing-webmaster-tools/&quot;&gt;comparison of the two tools&lt;/a&gt; explains where each one wins.&lt;/p&gt;
&lt;/details&gt;
&lt;/section&gt;
&lt;p&gt;Once you are set up, see &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/best-free-seo-tools/&quot;&gt;our seven picks of free tools for a small blog&lt;/a&gt; for what to add next, or read &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/choosing-seo-tools/&quot;&gt;our guide to choosing SEO tools&lt;/a&gt; for the full kit.&lt;/p&gt;
&lt;!--khalid-cta--&gt;
</content>
  </entry>
  <entry>
    <title>Core Web Vitals explained for content writers</title>
    <id>https://thebigasif.github.io/khalid/templates/almanac/core-web-vitals/</id>
    <link rel="alternate" type="text/html" href="https://thebigasif.github.io/khalid/templates/almanac/core-web-vitals/"/>
    <published>2026-09-29T00:00:00Z</published>
    <updated>2026-09-29T00:00:00Z</updated>
    <author>
      <name>Tomas Lindqvist</name>
    </author>
    <summary>What the Core Web Vitals measure, the scores that count as good, and the habits that keep a writer&#39;s posts fast without help from a developer.</summary>
    <content type="html">&lt;p&gt;Core Web Vitals are three measures Google uses to judge how a page feels to the person reading it: how fast the main content appears, how quickly the page responds to a tap, and whether things jump around while it loads. Writers rarely touch the code, yet most of what slows a blog post down is something a writer added.&lt;/p&gt;
&lt;p&gt;This post explains each measure in plain words, shows the scores that count as good, and lists the habits that keep your own posts fast.&lt;/p&gt;
&lt;nav class=&quot;toc&quot; aria-label=&quot;Contents&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#what-the-three-core-web-vitals-measure&quot;&gt;What the three Core Web Vitals measure&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#the-scores-that-count-as-good&quot;&gt;The scores that count as good&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#why-writers-move-these-scores-more-than-they-think&quot;&gt;Why writers move these scores more than they think&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#habits-that-keep-a-post-fast&quot;&gt;Habits that keep a post fast&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#layout-shift-the-problem-readers-notice-most&quot;&gt;Layout shift, the problem readers notice most&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#watch-the-talk-on-responsiveness&quot;&gt;Watch the talk on responsiveness&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#check-your-own-core-web-vitals&quot;&gt;Check your own Core Web Vitals&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/nav&gt;
&lt;h2 id=&quot;what-the-three-core-web-vitals-measure&quot;&gt;What the three Core Web Vitals measure&lt;/h2&gt;
&lt;p&gt;Each measure answers one question a reader would ask if they could.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Does the page show up soon?&lt;/strong&gt; That is &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/largest-contentful-paint/&quot;&gt;the largest contentful paint&lt;/a&gt;, the moment the biggest image or text block on the screen appears.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Does it react when I tap?&lt;/strong&gt; That is &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/interaction-to-next-paint/&quot;&gt;Interaction to Next Paint&lt;/a&gt;, or INP. It times the gap between a click or tap and the next change on the screen.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Does it stay still?&lt;/strong&gt; That is &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/cumulative-layout-shift/&quot;&gt;Cumulative Layout Shift&lt;/a&gt;, or CLS. It adds up how far things move while the page is still loading.&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;
&lt;img src=&quot;/khalid/templates/almanac/core-web-vitals/lcp.svg&quot; alt=&quot;Three stages of a page load that the Core Web Vitals time, from a blank screen to the largest element&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; /&gt;
&lt;figcaption&gt;
&lt;p&gt;The largest contentful paint is the third frame: the moment the biggest element on the screen has arrived.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;the-scores-that-count-as-good&quot;&gt;The scores that count as good&lt;/h2&gt;
&lt;p&gt;Google groups each of the Core Web Vitals into good, needs improvement and poor. A page passes when most real visits score good. The table shows the line for good, from the &lt;a href=&quot;https://web.dev/articles/vitals&quot;&gt;Web Vitals guide on web.dev&lt;/a&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Measure&lt;/th&gt;
&lt;th&gt;What it times&lt;/th&gt;
&lt;th&gt;Good score&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;LCP&lt;/td&gt;
&lt;td&gt;The largest element appears&lt;/td&gt;
&lt;td&gt;In 2026, 2.5 seconds or less&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;INP&lt;/td&gt;
&lt;td&gt;The page answers a tap&lt;/td&gt;
&lt;td&gt;In 2026, 200 milliseconds or less&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CLS&lt;/td&gt;
&lt;td&gt;The layout stays still&lt;/td&gt;
&lt;td&gt;In 2026, 0.1 or less&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The scores come from real visits, not from a test on your own laptop. Google takes the score that three visits in four beat, so the slowest quarter of your readers decides the result.&lt;/p&gt;
&lt;aside class=&quot;callout callout-note&quot;&gt;
&lt;p&gt;INP took over from First Input Delay as a Core Web Vital in March 2024, as the &lt;a href=&quot;https://web.dev/blog/inp-cwv-march-12&quot;&gt;Chrome team&#39;s announcement&lt;/a&gt; explains. Older guides that still talk about First Input Delay are out of date.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;why-writers-move-these-scores-more-than-they-think&quot;&gt;Why writers move these scores more than they think&lt;/h2&gt;
&lt;p&gt;A developer sets up the template once, and it rarely fails the Core Web Vitals on its own. A writer adds new things to it every week: a lead image, a chart, an embedded video, a quote from a social network. Each of those is a request the browser must make before the page feels finished.&lt;/p&gt;
&lt;p&gt;The biggest one is almost always the lead image. On most posts it is the largest element on the screen, so its size decides the largest contentful paint. A photo saved straight from a camera can be ten times heavier than it needs to be.&lt;/p&gt;
&lt;aside class=&quot;callout callout-warning&quot;&gt;
&lt;p&gt;Never upload a photo straight from a phone or camera. Resize it to the width your blog shows, then compress it. A lead image wider than the page only costs your readers time.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;habits-that-keep-a-post-fast&quot;&gt;Habits that keep a post fast&lt;/h2&gt;
&lt;p&gt;These are the habits we ask of every writer at Larkspur. None of them needs a developer.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Resize before you upload.&lt;/strong&gt; Match the widest size your template shows, and no more.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pick the right format.&lt;/strong&gt; Use photos as JPEG or WebP and drawings as SVG.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Describe every image.&lt;/strong&gt; Alt text costs nothing in speed and helps every reader who cannot see the picture.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Load embeds only when needed.&lt;/strong&gt; One video in a post is fine. Four videos and a social feed are not.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Keep the top of the post light.&lt;/strong&gt; The first screen should be text and one image, not a slider.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If your blog lets you write an image tag by hand, keep the browser&#39;s own lazy loading for images further down the page, and always give the alt text:&lt;/p&gt;
&lt;pre class=&quot;syntax-highlighting&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;hl-text hl-html hl-basic&quot;&gt;&lt;span class=&quot;hl-meta hl-tag hl-inline hl-any hl-html&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-tag hl-begin hl-html&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;hl-entity hl-name hl-tag hl-inline hl-any hl-html&quot;&gt;img&lt;/span&gt; &lt;span class=&quot;hl-meta hl-attribute-with-value hl-html&quot;&gt;&lt;span class=&quot;hl-entity hl-other hl-attribute-name hl-html&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;hl-punctuation hl-separator hl-key-value hl-html&quot;&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-meta hl-attribute-with-value hl-html&quot;&gt;&lt;span class=&quot;hl-string hl-quoted hl-double hl-html&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-html&quot;&gt;&amp;quot;&lt;/span&gt;reader-survey-chart.webp&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-html&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
     &lt;span class=&quot;hl-meta hl-attribute-with-value hl-html&quot;&gt;&lt;span class=&quot;hl-entity hl-other hl-attribute-name hl-html&quot;&gt;alt&lt;/span&gt;&lt;span class=&quot;hl-punctuation hl-separator hl-key-value hl-html&quot;&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-meta hl-attribute-with-value hl-html&quot;&gt;&lt;span class=&quot;hl-string hl-quoted hl-double hl-html&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-html&quot;&gt;&amp;quot;&lt;/span&gt;Bar chart of the questions our readers asked most&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-html&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
     &lt;span class=&quot;hl-meta hl-attribute-with-value hl-html&quot;&gt;&lt;span class=&quot;hl-entity hl-other hl-attribute-name hl-html&quot;&gt;loading&lt;/span&gt;&lt;span class=&quot;hl-punctuation hl-separator hl-key-value hl-html&quot;&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-meta hl-attribute-with-value hl-html&quot;&gt;&lt;span class=&quot;hl-string hl-quoted hl-double hl-html&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-html&quot;&gt;&amp;quot;&lt;/span&gt;lazy&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-html&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;hl-meta hl-attribute-with-value hl-html&quot;&gt;&lt;span class=&quot;hl-entity hl-other hl-attribute-name hl-html&quot;&gt;decoding&lt;/span&gt;&lt;span class=&quot;hl-punctuation hl-separator hl-key-value hl-html&quot;&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-meta hl-attribute-with-value hl-html&quot;&gt;&lt;span class=&quot;hl-string hl-quoted hl-double hl-html&quot;&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-begin hl-html&quot;&gt;&amp;quot;&lt;/span&gt;async&lt;span class=&quot;hl-punctuation hl-definition hl-string hl-end hl-html&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hl-punctuation hl-definition hl-tag hl-end hl-html&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Do not lazy load the lead image. It is the one image the reader needs at once, so the browser should fetch it first.&lt;/p&gt;
&lt;aside class=&quot;callout callout-tip&quot;&gt;
&lt;p&gt;Before you publish, open the post on your phone over mobile data, not office wifi. If you wait for the lead image, your readers will too.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;layout-shift-the-problem-readers-notice-most&quot;&gt;Layout shift, the problem readers notice most&lt;/h2&gt;
&lt;p&gt;A page that jumps while you read it is the fastest way to lose trust. You start reading a line, an advert or an image loads above it, and the line moves away from your eyes.&lt;/p&gt;
&lt;p&gt;Most layout shift in posts comes from three sources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Images without a set size.&lt;/strong&gt; The browser does not know how much room to keep, so it makes room late.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embeds that grow as they load.&lt;/strong&gt; A video or a social post often starts small and then expands.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Banners added at the top.&lt;/strong&gt; A notice that slides in after the page has drawn pushes everything down.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A good template reserves the space for each of these before they load. If your blog shows the width and height of every image, the browser can do the same.&lt;/p&gt;
&lt;h2 id=&quot;watch-the-talk-on-responsiveness&quot;&gt;Watch the talk on responsiveness&lt;/h2&gt;
&lt;p&gt;The Chrome team explains in this talk from 2024 how to find the slow interactions behind a poor INP score, with examples from real sites.&lt;/p&gt;
&lt;figure class=&quot;embed embed-wide&quot;&gt;
&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/xfjumh8ySRY&quot; title=&quot;New field insights for debugging INP&quot; width=&quot;560&quot; height=&quot;315&quot; loading=&quot;lazy&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; sandbox=&quot;allow-scripts allow-same-origin allow-popups allow-presentation&quot; allow=&quot;encrypted-media; fullscreen; picture-in-picture&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=xfjumh8ySRY&quot;&gt;New field insights for debugging INP&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/inp-video-notes/&quot;&gt;video notes on debugging INP&lt;/a&gt; pull out what to check on a blog. This post also has a German version, and our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/hreflang-guide/&quot;&gt;step-by-step guide for a two-language blog&lt;/a&gt; shows how the two are tied together.&lt;/p&gt;
&lt;h2 id=&quot;check-your-own-core-web-vitals&quot;&gt;Check your own Core Web Vitals&lt;/h2&gt;
&lt;p&gt;You do not need special tools to see where you stand. Search Console has a Core Web Vitals report that groups your pages by score from real visits. Check it once a month, and look first at the posts with the most traffic.&lt;/p&gt;
&lt;p&gt;When a post fails, open it and ask which of the habits above it breaks. In our experience the fix is the lead image four times out of five. Fast pages also help when you &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/structured-data/&quot;&gt;mark up a post with structured data&lt;/a&gt;, because a page that loads quickly gets crawled and read more often.&lt;/p&gt;
&lt;p&gt;Add a speed check to &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/editing-checklist/&quot;&gt;the list we run before every post&lt;/a&gt;, so the problem never reaches your readers. And if you write for AI search as well, fast and stable pages are easier to fetch: our research on &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/ai-search-sources/&quot;&gt;which pages AI tools choose to quote&lt;/a&gt; shows why.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>The 7 best free SEO tools for a small blog</title>
    <id>https://thebigasif.github.io/khalid/templates/almanac/best-free-seo-tools/</id>
    <link rel="alternate" type="text/html" href="https://thebigasif.github.io/khalid/templates/almanac/best-free-seo-tools/"/>
    <published>2026-09-22T00:00:00Z</published>
    <updated>2026-09-22T00:00:00Z</updated>
    <author>
      <name>Dalia Moreno</name>
    </author>
    <summary>Seven free SEO tools that cover search data, page speed, structured data, crawling and trends for a small blog, with the limit of each.</summary>
    <content type="html">&lt;p&gt;Our top pick is Google Search Console: every blog that wants search traffic should set it up first, because it shows how Google sees your pages. The runner-up is Bing Webmaster Tools, a second free view with link and keyword reports. The other five free SEO tools each fix one job well.&lt;/p&gt;
&lt;nav class=&quot;toc&quot; aria-label=&quot;Contents&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#the-picks-at-a-glance&quot;&gt;The picks at a glance&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#google-search-console&quot;&gt;Google Search Console&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#bing-webmaster-tools&quot;&gt;Bing Webmaster Tools&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#pagespeed-insights&quot;&gt;PageSpeed Insights&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#rich-results-test&quot;&gt;Rich Results Test&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#schema-markup-validator&quot;&gt;Schema Markup Validator&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#screaming-frog-seo-spider&quot;&gt;Screaming Frog SEO Spider&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#google-trends&quot;&gt;Google Trends&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#how-we-chose-these-free-seo-tools&quot;&gt;How we chose these free SEO tools&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/nav&gt;
&lt;aside class=&quot;callout callout-summary&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Start with two:&lt;/strong&gt; Google Search Console and Bing Webmaster Tools give you search data and indexing checks for free.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Add three checkers:&lt;/strong&gt; one for page speed and two for &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/structured-data/&quot;&gt;structured data&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Add a crawler and a trends tool&lt;/strong&gt; when you have more than a handful of posts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;None of them&lt;/strong&gt; needs a credit card to start.&lt;/li&gt;
&lt;/ul&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;the-picks-at-a-glance&quot;&gt;The picks at a glance&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Pick&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;th&gt;Price&lt;/th&gt;
&lt;th&gt;Why it made the list&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Google Search Console&lt;/td&gt;
&lt;td&gt;Every blog&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;Google&#39;s own data on your pages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bing Webmaster Tools&lt;/td&gt;
&lt;td&gt;A second view&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;Links, keywords and quick indexing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PageSpeed Insights&lt;/td&gt;
&lt;td&gt;Checking one page&#39;s speed&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;Lab and real-user speed data in one report&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rich Results Test&lt;/td&gt;
&lt;td&gt;Google rich results&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;Shows which rich results a page can get&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Schema Markup Validator&lt;/td&gt;
&lt;td&gt;Any schema.org markup&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;Checks every schema.org type&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Screaming Frog SEO Spider&lt;/td&gt;
&lt;td&gt;Crawling a small site&lt;/td&gt;
&lt;td&gt;Free for small sites&lt;/td&gt;
&lt;td&gt;Finds broken links and missing titles fast&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Trends&lt;/td&gt;
&lt;td&gt;Timing a topic&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;Shows when interest in a topic rises&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;google-search-console&quot;&gt;Google Search Console&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Who it suits:&lt;/strong&gt; every site owner, from the first post onwards.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What it does best:&lt;/strong&gt; it shows the searches that bring people to your pages, with clicks, impressions and average position. Its page indexing report tells you which pages Google left out and why. Its URL inspection tool shows how Google sees one page.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Main limit:&lt;/strong&gt; it covers Google only, and it gives no new keyword ideas. It only shows searches where your site already appears.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Price:&lt;/strong&gt; free. Read &lt;a href=&quot;https://search.google.com/search-console/about&quot;&gt;Google&#39;s overview of Search Console&lt;/a&gt;, then follow &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/search-console-setup/&quot;&gt;our 15 minute setup guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;bing-webmaster-tools&quot;&gt;Bing Webmaster Tools&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Who it suits:&lt;/strong&gt; anyone who already has Search Console and wants a second view.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What it does best:&lt;/strong&gt; it adds what Google&#39;s tool leaves out, which makes it one of the most useful free SEO tools after Search Console. You get a free report of sites that link to you, a keyword research tool with Bing&#39;s own &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/search-volume/&quot;&gt;search counts&lt;/a&gt;, and support for IndexNow, an open way to tell search engines about a new page at once.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Main limit:&lt;/strong&gt; it reports on Bing&#39;s audience, which is smaller than Google&#39;s, so a small blog sees less data.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Price:&lt;/strong&gt; free, and it can import your sites from Search Console. We weigh the two in &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/search-console-vs-bing-webmaster-tools/&quot;&gt;our side-by-side look at both webmaster tools&lt;/a&gt;.&lt;/p&gt;
&lt;p class=&quot;bookmark&quot;&gt;&lt;a href=&quot;https://www.bing.com/webmasters/about&quot;&gt;&lt;span class=&quot;bookmark-title&quot;&gt;Bing Webmaster Tools&lt;/span&gt;&lt;span class=&quot;bookmark-description&quot;&gt;Microsoft&amp;#39;s free dashboard for site owners.&lt;/span&gt;&lt;span class=&quot;bookmark-host&quot;&gt;www.bing.com&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;pagespeed-insights&quot;&gt;PageSpeed Insights&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Who it suits:&lt;/strong&gt; a writer or owner who wants to know if one page is slow, and why.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What it does best:&lt;/strong&gt; paste a URL and it gives two views. Lab data comes from a test run on the spot. Field data shows how the page loaded for real Chrome users, including &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/largest-contentful-paint/&quot;&gt;how long the main content takes to appear&lt;/a&gt;. Under the scores it lists what to fix first.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Main limit:&lt;/strong&gt; it checks one page at a time, and field data only appears when a page gets enough visits. A quiet post on a new blog shows lab data only.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Price:&lt;/strong&gt; free. Our guide to &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/core-web-vitals/&quot;&gt;the Core Web Vitals in plain words&lt;/a&gt; explains how to read the report.&lt;/p&gt;
&lt;p class=&quot;bookmark&quot;&gt;&lt;a href=&quot;https://pagespeed.web.dev/&quot;&gt;&lt;span class=&quot;bookmark-title&quot;&gt;PageSpeed Insights&lt;/span&gt;&lt;span class=&quot;bookmark-description&quot;&gt;Google&amp;#39;s free speed report for any page.&lt;/span&gt;&lt;span class=&quot;bookmark-host&quot;&gt;pagespeed.web.dev&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;rich-results-test&quot;&gt;Rich Results Test&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Who it suits:&lt;/strong&gt; anyone who adds FAQ, review, recipe or article markup and wants it to show in Google.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What it does best:&lt;/strong&gt; it tells you which Google rich results a page can show, such as review stars or recipe cards, and points to any error that blocks them. You can test a live URL or paste code.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Main limit:&lt;/strong&gt; it only checks the types Google supports. Valid markup of another type gets no comment at all.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Price:&lt;/strong&gt; free, at &lt;a href=&quot;https://search.google.com/test/rich-results&quot;&gt;the Rich Results Test page&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;schema-markup-validator&quot;&gt;Schema Markup Validator&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Who it suits:&lt;/strong&gt; anyone who writes markup by hand or uses types that Google does not show as rich results.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What it does best:&lt;/strong&gt; it checks markup against the whole schema.org vocabulary, not just Google&#39;s part of it. It shows each item it found in a tree, so you can see what a page says about itself.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Main limit:&lt;/strong&gt; it tells you nothing about how Google will show the page. Use it beside the Rich Results Test, not instead of it: one checks the vocabulary, the other checks what Google will show.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Price:&lt;/strong&gt; free, run by schema.org on &lt;a href=&quot;https://validator.schema.org/&quot;&gt;the schema.org validator site&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;screaming-frog-seo-spider&quot;&gt;Screaming Frog SEO Spider&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Who it suits:&lt;/strong&gt; a blog with enough posts that you can no longer check every page by hand.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What it does best:&lt;/strong&gt; the Screaming Frog crawler visits your site the way a search engine does and lists every page with its status, title, description, headings and links. In a few minutes you can find broken links, missing titles and pages that redirect.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Main limit:&lt;/strong&gt; unlike most free SEO tools here, it is a desktop app with many settings, so it takes an hour to learn. Some features, such as saving a crawl, need the paid licence.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Price:&lt;/strong&gt; the free version crawls up to 500 URLs, which &lt;a href=&quot;https://www.screamingfrog.co.uk/seo-spider/&quot;&gt;Screaming Frog states on its own page&lt;/a&gt;. That covers most small blogs.&lt;/p&gt;
&lt;h2 id=&quot;google-trends&quot;&gt;Google Trends&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Who it suits:&lt;/strong&gt; a writer planning when to publish, or choosing between two ways to name a topic. Of all the free SEO tools here, it is the one to open before a post is written.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What it does best:&lt;/strong&gt; it shows how interest in a search term rises and falls over time and by region. It is good for spotting a season, such as a topic that peaks every January, and for comparing two phrases.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Main limit:&lt;/strong&gt; it shows interest relative to the busiest point, not the number of searches. Use it for timing and comparison, not for sizing a topic.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Price:&lt;/strong&gt; free, at &lt;a href=&quot;https://trends.google.com/&quot;&gt;Google Trends&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;how-we-chose-these-free-seo-tools&quot;&gt;How we chose these free SEO tools&lt;/h2&gt;
&lt;p&gt;We picked free SEO tools that a small blog can use without paying and without a trial that ends. Every pick had to do one job better than the free part of any paid suite we know. Dalia Moreno, our tools and reviews editor, used each one on Larkspur&#39;s own site in September 2026, and Tomas Lindqvist checked the technical claims.&lt;/p&gt;
&lt;p&gt;We left out tools that only show data after you sign up for a paid plan, and free SEO tools that do the same job as a pick above. Nobody paid to be on this list, as &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/editorial-policy/&quot;&gt;our policy on reviews and money&lt;/a&gt; explains. If you want a writing tool too, see &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/quillmeter-review/&quot;&gt;our review of the Quillmeter readability checker&lt;/a&gt;, and for the bigger picture on free and paid SEO tools, read &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/choosing-seo-tools/&quot;&gt;how we choose tools for a small team&lt;/a&gt;.&lt;/p&gt;
&lt;form class=&quot;subscribe&quot; method=&quot;post&quot; action=&quot;/subscribe&quot;&gt;
&lt;p&gt;&lt;label for=&quot;subscribe-1-email&quot;&gt;Your email address&lt;/label&gt;
&lt;input id=&quot;subscribe-1-email&quot; name=&quot;email&quot; type=&quot;email&quot; autocomplete=&quot;email&quot; required /&gt;&lt;/p&gt;
&lt;p class=&quot;form-trap&quot; aria-hidden=&quot;true&quot;&gt;&lt;label for=&quot;subscribe-1-homepage&quot;&gt;Leave this empty&lt;/label&gt;
&lt;input id=&quot;subscribe-1-homepage&quot; name=&quot;homepage&quot; type=&quot;text&quot; tabindex=&quot;-1&quot; autocomplete=&quot;off&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;button type=&quot;submit&quot;&gt;Get one practical post a week&lt;/button&gt;&lt;/p&gt;
&lt;/form&gt;
</content>
  </entry>
  <entry>
    <title>A content refresh playbook for posts that slipped</title>
    <id>https://thebigasif.github.io/khalid/templates/almanac/content-refresh/</id>
    <link rel="alternate" type="text/html" href="https://thebigasif.github.io/khalid/templates/almanac/content-refresh/"/>
    <published>2026-09-15T00:00:00Z</published>
    <updated>2026-10-28T00:00:00Z</updated>
    <author>
      <name>Priya Raman</name>
    </author>
    <summary>A content refresh playbook for small teams. How to find the old posts that slipped, decide what each one needs, and update it without losing what it earned.</summary>
    <content type="html">&lt;p&gt;A content refresh is the work of bringing an old post back up to date so it serves readers again: new facts, a clearer answer, better links. It is the cheapest growth most blogs ignore. Writing a new post starts from nothing. A refresh starts from a page that search engines already know.&lt;/p&gt;
&lt;p&gt;This playbook shows how we choose which posts to refresh, what we change, and what we leave alone.&lt;/p&gt;
&lt;h2 id=&quot;why-old-posts-slip&quot;&gt;Why old posts slip&lt;/h2&gt;
&lt;p&gt;Posts lose ground for ordinary reasons. The facts change. A tool gets renamed. Competitors publish something clearer. Readers&#39; questions shift. None of this shows on the post itself, which looks exactly as it did on the day you published it.&lt;/p&gt;
&lt;p&gt;The cost of leaving posts alone is real. Our benchmark found that in 2026, 38% of small business blogs had not updated a single post in twelve months. Posts updated within the year earned, in 2026, 1.6 times the search clicks of untouched posts at the median. A content refresh is how a blog collects that gain.&lt;/p&gt;
&lt;figure class=&quot;pullquote&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;A blog is not a stack of finished pages. It is a garden, and the oldest beds need the most weeding.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;Priya Raman, research editor&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;find-the-posts-worth-a-content-refresh&quot;&gt;Find the posts worth a content refresh&lt;/h2&gt;
&lt;p&gt;Not every old post deserves your time. Look for posts that once did well or that answer a question your customers still ask. Three signals point to the best candidates:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Falling clicks.&lt;/strong&gt; The post&#39;s search clicks are lower than they were a year ago.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Near misses.&lt;/strong&gt; The post shows up in results often but sits just below the top few places.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Out-of-date facts.&lt;/strong&gt; The post names a year, a price or a tool that has changed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sort your posts by these signals and pick a few per month. A steady habit beats a big rewrite project. We keep a refresh slot every second week in &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/content-calendar/&quot;&gt;the calendar our team plans with&lt;/a&gt;, so the work never waits for a quiet month.&lt;/p&gt;
&lt;h2 id=&quot;decide-what-each-post-needs&quot;&gt;Decide what each post needs&lt;/h2&gt;
&lt;p&gt;A content refresh can be small or large. Match the work to the problem:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Problem&lt;/th&gt;
&lt;th&gt;What to do&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Facts out of date&lt;/td&gt;
&lt;td&gt;Replace them and cite the new source with its year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Answer buried&lt;/td&gt;
&lt;td&gt;Move a short answer to the top&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Thin on detail&lt;/td&gt;
&lt;td&gt;Add an example, a table or a step list&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wrong question&lt;/td&gt;
&lt;td&gt;Rewrite around the question readers ask now&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Overlaps a newer post&lt;/td&gt;
&lt;td&gt;Merge the two and redirect the weaker one&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;run-the-refresh-in-seven-steps&quot;&gt;Run the refresh in seven steps&lt;/h2&gt;
&lt;ol class=&quot;howto&quot;&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Read the post as a stranger&lt;/p&gt;
&lt;p&gt;Read it top to bottom on a phone. Note every place where you would stop reading or stop trusting it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Search its question again&lt;/p&gt;
&lt;p&gt;Search the question the post answers and read the top results. Note what they cover that your post does not.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Check what AI search says&lt;/p&gt;
&lt;p&gt;Ask an AI search tool the same question. See which pages it quotes and what kind of answer it gives.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Update the facts and sources&lt;/p&gt;
&lt;p&gt;Replace every number, name and screenshot that has changed. Give each new number its source and its year.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Sharpen the answer&lt;/p&gt;
&lt;p&gt;Put a plain answer near the top. Cut sections that no longer earn their place.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Refresh the links&lt;/p&gt;
&lt;p&gt;Link to posts you have written since, and check that every outside link still works.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Show the date and say what changed&lt;/p&gt;
&lt;p&gt;Set the updated date, and write one sentence at the top that tells readers what is new.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Before a content refresh goes live, run the post through &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/editing-checklist/&quot;&gt;the editors&#39; pre-publish checklist&lt;/a&gt;. A refresh deserves the same care as a new post.&lt;/p&gt;
&lt;aside class=&quot;callout callout-warning&quot;&gt;
&lt;p&gt;Keep the post&#39;s address. A new address throws away the links and trust the old one earned. If you must move it, redirect the old address to the new one on the same day.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;tell-readers-what-changed&quot;&gt;Tell readers what changed&lt;/h2&gt;
&lt;p&gt;An updated date on its own can look like a trick. Readers have seen posts whose date changes every month while the text stays the same. Be specific instead. One sentence at the top, such as &amp;quot;We added the new pricing and a section on exports&amp;quot;, tells readers the update is real.&lt;/p&gt;
&lt;p&gt;Google&#39;s guidance on &lt;a href=&quot;https://developers.google.com/search/docs/appearance/publication-dates&quot;&gt;showing dates in search results&lt;/a&gt; asks for the same honesty: change the date only when the content really changes.&lt;/p&gt;
&lt;h2 id=&quot;measure-whether-it-worked&quot;&gt;Measure whether it worked&lt;/h2&gt;
&lt;p&gt;Write down the post&#39;s clicks and results before you change it. Check again after six to eight weeks, and compare the same length of time before and after. Some posts climb fast. Others need a second pass.&lt;/p&gt;
&lt;aside class=&quot;callout callout-read&quot;&gt;
&lt;p&gt;Our method for &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/content-roi/&quot;&gt;measuring what each post earns&lt;/a&gt; works for a content refresh too. Count the hours the update took, and compare them with what the post brings back.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;make-the-content-refresh-a-habit&quot;&gt;Make the content refresh a habit&lt;/h2&gt;
&lt;p&gt;The teams that get the most from old posts do not run a big project once a year. They keep a short list, refresh a few posts each month, and treat the archive as part of the blog rather than its attic. Start with the post that once did best and has slipped the most. It is usually the fastest win you have.&lt;/p&gt;
&lt;p&gt;If you are new to the craft behind a strong post, start with &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/seo-writing-guide/&quot;&gt;the full SEO writing guide&lt;/a&gt;. Every refresh is easier when you know what a good post looks like.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>How to write answer capsules AI search can quote</title>
    <id>https://thebigasif.github.io/khalid/templates/almanac/answer-capsules/</id>
    <link rel="alternate" type="text/html" href="https://thebigasif.github.io/khalid/templates/almanac/answer-capsules/"/>
    <published>2026-09-09T00:00:00Z</published>
    <updated>2026-09-09T00:00:00Z</updated>
    <author>
      <name>Maren Okafor</name>
    </author>
    <summary>Answer capsules are short, plain answers under question headings that readers, featured snippets and AI search can lift whole. With examples.</summary>
    <content type="html">&lt;p&gt;An answer capsule is the short, plain answer you write straight under a heading that asks a question. It is the part of a post most likely to be lifted whole, by a reader in a hurry, by a featured snippet, or by an AI search tool building its reply. This post shows how we write answer capsules, with before and after examples from our own drafts.&lt;/p&gt;
&lt;p&gt;It is part of our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/ai-search-guide/&quot;&gt;guide to being found in AI search&lt;/a&gt;, which covers the wider picture. If you want the one-line version first, read &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/answer-capsule/&quot;&gt;the glossary entry for this term&lt;/a&gt;.&lt;/p&gt;
&lt;aside class=&quot;callout callout-summary&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ask the question in the heading,&lt;/strong&gt; in the words a reader would type.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Answer in the first sentence&lt;/strong&gt; under it, with no warm-up.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Keep the whole answer to forty to sixty words,&lt;/strong&gt; then put the detail below.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Leave out hedges and links&lt;/strong&gt; in the first sentence.&lt;/li&gt;
&lt;/ul&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;what-is-an-answer-capsule&quot;&gt;What is an answer capsule?&lt;/h2&gt;
&lt;p&gt;An answer capsule is a short, plain answer placed directly under a heading that asks a question. It runs forty to sixty words, makes sense on its own, and settles the question before any detail starts. A reader in a hurry can stop there. A search tool can lift it whole and quote it without edits.&lt;/p&gt;
&lt;h3 id=&quot;why-forty-to-sixty-words&quot;&gt;Why forty to sixty words&lt;/h3&gt;
&lt;p&gt;Shorter than that and the answer has no room for the one condition or example that makes it useful. Longer and it starts to carry two ideas, so a tool that quotes it has to cut. The range is a house rule, not a law of search. Our blog engine checks it on every post: you can see the check at work in our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/feature-tour/&quot;&gt;tour of the linter and editor&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;why-do-ai-search-tools-quote-answer-capsules&quot;&gt;Why do AI search tools quote answer capsules?&lt;/h2&gt;
&lt;p&gt;AI search tools build their replies from short passages they can lift from a page. A passage that answers the question in full, names its subject, and needs no sentence before it to make sense is easy to lift. An answer capsule is built to be that passage, so you give the tool a clean one to quote.&lt;/p&gt;
&lt;h3 id=&quot;the-same-capsule-serves-featured-snippets&quot;&gt;The same capsule serves featured snippets&lt;/h3&gt;
&lt;p&gt;A &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/featured-snippet/&quot;&gt;Featured snippet&lt;/a&gt; is the boxed answer Google sometimes shows above the usual results. It draws on the same kind of passage: a direct answer under a clear heading. Google&#39;s page on &lt;a href=&quot;https://developers.google.com/search/docs/appearance/featured-snippets&quot;&gt;how featured snippets work&lt;/a&gt; says the snippet is chosen automatically, and that you cannot mark up a page to ask for one. What you can do is write the answer so it is easy to choose.&lt;/p&gt;
&lt;p&gt;Our post on &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/ai-search-sources/&quot;&gt;how AI search picks the pages it cites&lt;/a&gt; makes the same point. The easiest passage to quote is one that stands alone under a question heading.&lt;/p&gt;
&lt;h2 id=&quot;how-do-you-write-an-answer-capsule&quot;&gt;How do you write an answer capsule?&lt;/h2&gt;
&lt;p&gt;Start with the question as a heading, in the words a reader would type. Under it, answer in the first sentence, using the subject&#39;s name instead of a pronoun. Add one or two sentences of the most useful detail: a condition, a number or a next step. Stop at sixty words, then move the rest below.&lt;/p&gt;
&lt;h3 id=&quot;before-and-after&quot;&gt;Before and after&lt;/h3&gt;
&lt;p&gt;Here is a capsule from one of our own drafts, before and after the edit. The question was &amp;quot;Should a blog post have a table of contents?&amp;quot;&lt;/p&gt;
&lt;div class=&quot;columns&quot;&gt;
&lt;div class=&quot;column&quot;&gt;
&lt;p class=&quot;column-title&quot;&gt;Before&lt;/p&gt;
&lt;p&gt;Tables of contents have been around for a long time, and opinions on them vary a lot. In our experience, it really depends on the post. That said, there are some cases where they can arguably help, as we will explore in the sections below.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;column&quot;&gt;
&lt;p class=&quot;column-title&quot;&gt;After&lt;/p&gt;
&lt;p&gt;Yes, for any post long enough to need scrolling. A table of contents lets a skimmer jump to the part they need, and it gives search engines named links into each section. Skip it on short posts, where it only pushes the answer further down the page.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The first version never answers. The second says yes in its first word, gives the reason, and names the exception. Nothing in it depends on the paragraph before.&lt;/p&gt;
&lt;h3 id=&quot;a-checklist-for-every-capsule&quot;&gt;A checklist for every capsule&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The heading is a real question and ends with a question mark.&lt;/li&gt;
&lt;li&gt;The first sentence answers it, and would make sense read aloud on its own.&lt;/li&gt;
&lt;li&gt;The subject is named, not &amp;quot;it&amp;quot; or &amp;quot;this&amp;quot;.&lt;/li&gt;
&lt;li&gt;The answer runs forty to sixty words.&lt;/li&gt;
&lt;li&gt;No hedge words, no links, and no &amp;quot;as mentioned above&amp;quot;.&lt;/li&gt;
&lt;li&gt;The detail, the caveats and the examples sit below the capsule, not inside it.&lt;/li&gt;
&lt;/ul&gt;
&lt;aside class=&quot;callout callout-tip&quot;&gt;
&lt;p&gt;Read the capsule aloud with the heading covered. If a stranger would not know what it answers, name the subject in the first sentence.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;what-mistakes-stop-a-capsule-being-quoted&quot;&gt;What mistakes stop a capsule being quoted?&lt;/h2&gt;
&lt;p&gt;Three mistakes do most of the damage. Hedging makes the answer sound unsure, so readers and tools have less reason to trust it. Burying the answer behind a warm-up sentence means the passage no longer stands alone. A link in the first sentence pulls the reader away before they have the answer, and breaks the flow.&lt;/p&gt;
&lt;h3 id=&quot;the-mistakes-in-detail&quot;&gt;The mistakes in detail&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Mistake&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;th&gt;Fix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Hedging&lt;/td&gt;
&lt;td&gt;&amp;quot;It can arguably help in some cases.&amp;quot;&lt;/td&gt;
&lt;td&gt;Say what you know: &amp;quot;It helps on long posts.&amp;quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Burying the answer&lt;/td&gt;
&lt;td&gt;&amp;quot;Before we answer, some history.&amp;quot;&lt;/td&gt;
&lt;td&gt;Put the answer first, history after.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A link in the first sentence&lt;/td&gt;
&lt;td&gt;&amp;quot;As [our guide] shows, yes.&amp;quot;&lt;/td&gt;
&lt;td&gt;Answer first, link in the detail.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Leaning on the post&lt;/td&gt;
&lt;td&gt;&amp;quot;As we said above, no.&amp;quot;&lt;/td&gt;
&lt;td&gt;Restate the subject so it stands alone.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Two questions at once&lt;/td&gt;
&lt;td&gt;&amp;quot;Yes, and also you should...&amp;quot;&lt;/td&gt;
&lt;td&gt;Give the second question its own heading.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Our linter flags the common hedge words under question headings for this reason: &amp;quot;arguably&amp;quot;, &amp;quot;basically&amp;quot;, &amp;quot;perhaps&amp;quot; and their cousins. Each one makes the answer weaker and adds nothing a reader needs.&lt;/p&gt;
&lt;aside class=&quot;callout callout-warning&quot;&gt;
&lt;p&gt;Do not turn every heading into a question to collect more answer capsules. A post where each section opens with a question reads like a quiz. Use question headings where a reader would ask that question, and plain headings for the rest.&lt;/p&gt;
&lt;/aside&gt;
&lt;figure&gt;
&lt;img src=&quot;/khalid/templates/almanac/answer-capsules/capsule.svg&quot; alt=&quot;A mock page showing where answer capsules go: a question heading, a highlighted short answer under it, and the detail below, with numbered labels&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; /&gt;
&lt;figcaption&gt;
&lt;p&gt;The shape of a section built around a capsule. Notice that the capsule sits between the question and the detail, so a tool can lift it without taking anything else.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;aside class=&quot;callout callout-note&quot;&gt;
&lt;p&gt;A capsule is not a summary of the whole post. It answers one heading. The summary box at the top of a post does a different job, and both can live on the same page.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;questions-about-answer-capsules&quot;&gt;Questions about answer capsules&lt;/h2&gt;
&lt;section class=&quot;faq&quot;&gt;
&lt;details open&gt;
&lt;summary&gt;Does every post need answer capsules?&lt;/summary&gt;
&lt;p&gt;No. Use them where a heading asks a real question. A step-by-step guide or a story needs few of them, while a post that answers common questions may have five or six.&lt;/p&gt;
&lt;/details&gt;
&lt;details open&gt;
&lt;summary&gt;Can a capsule hold a list?&lt;/summary&gt;
&lt;p&gt;Keep the capsule itself as a paragraph, so it can be quoted as one passage. Put a list straight after it if the answer has steps or parts.&lt;/p&gt;
&lt;/details&gt;
&lt;details open&gt;
&lt;summary&gt;Should answer capsules be written for AI or for readers?&lt;/summary&gt;
&lt;p&gt;For readers. A plain answer near the top helps a person in a hurry, and the same qualities make it easy for a tool to quote. If the two ever pull apart, write for the person.&lt;/p&gt;
&lt;/details&gt;
&lt;/section&gt;
&lt;form class=&quot;subscribe&quot; method=&quot;post&quot; action=&quot;/subscribe&quot;&gt;
&lt;p&gt;&lt;label for=&quot;subscribe-1-email&quot;&gt;Your email address&lt;/label&gt;
&lt;input id=&quot;subscribe-1-email&quot; name=&quot;email&quot; type=&quot;email&quot; autocomplete=&quot;email&quot; required /&gt;&lt;/p&gt;
&lt;p class=&quot;form-trap&quot; aria-hidden=&quot;true&quot;&gt;&lt;label for=&quot;subscribe-1-homepage&quot;&gt;Leave this empty&lt;/label&gt;
&lt;input id=&quot;subscribe-1-homepage&quot; name=&quot;homepage&quot; type=&quot;text&quot; tabindex=&quot;-1&quot; autocomplete=&quot;off&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;button type=&quot;submit&quot;&gt;Get one AI search tip a week&lt;/button&gt;&lt;/p&gt;
&lt;/form&gt;
</content>
  </entry>
  <entry>
    <title>Google Search Console vs Bing Webmaster Tools</title>
    <id>https://thebigasif.github.io/khalid/templates/almanac/search-console-vs-bing-webmaster-tools/</id>
    <link rel="alternate" type="text/html" href="https://thebigasif.github.io/khalid/templates/almanac/search-console-vs-bing-webmaster-tools/"/>
    <published>2026-09-08T00:00:00Z</published>
    <updated>2026-09-08T00:00:00Z</updated>
    <author>
      <name>Tomas Lindqvist</name>
    </author>
    <summary>Google Search Console and Bing Webmaster Tools are both free. Here is where each one wins, and which a small blog should set up first.</summary>
    <content type="html">&lt;p&gt;Every blog should set up Google Search Console first, because Google sends most search visits. Add Bing Webmaster Tools next if you want a second view of your site, quick indexing through IndexNow, and a few extra reports for free. Both are free, and Bing Webmaster Tools can import your sites from Search Console in minutes.&lt;/p&gt;
&lt;nav class=&quot;toc&quot; aria-label=&quot;Contents&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#google-search-console-and-bing-webmaster-tools-at-a-glance&quot;&gt;Google Search Console and Bing Webmaster Tools at a glance&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#where-google-search-console-wins&quot;&gt;Where Google Search Console wins&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#where-bing-webmaster-tools-wins&quot;&gt;Where Bing Webmaster Tools wins&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#which-one-to-choose&quot;&gt;Which one to choose&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#how-we-compared-them&quot;&gt;How we compared them&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/nav&gt;
&lt;div class=&quot;columns&quot;&gt;
&lt;div class=&quot;column&quot;&gt;
&lt;p class=&quot;column-title&quot;&gt;Pick Google Search Console if&lt;/p&gt;
&lt;p&gt;You can only set up one tool. It shows how the search engine most of your readers use sees your site, and it is where Google tells you about problems.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;column&quot;&gt;
&lt;p class=&quot;column-title&quot;&gt;Add Bing Webmaster Tools if&lt;/p&gt;
&lt;p&gt;You want a second opinion on indexing, a way to tell search engines about new pages at once, and free reports on links and keywords.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&quot;google-search-console-and-bing-webmaster-tools-at-a-glance&quot;&gt;Google Search Console and Bing Webmaster Tools at a glance&lt;/h2&gt;
&lt;p&gt;Both tools are free dashboards from the search engines themselves. You prove you own the site, and they show you how their search engine crawls, indexes and shows your pages. The table sets them side by side.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Point&lt;/th&gt;
&lt;th&gt;Google Search Console&lt;/th&gt;
&lt;th&gt;Bing Webmaster Tools&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Best for&lt;/td&gt;
&lt;td&gt;Every site, as the first tool to set up&lt;/td&gt;
&lt;td&gt;A second view, and quick indexing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Price&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Main strength&lt;/td&gt;
&lt;td&gt;Data from the search engine most readers use&lt;/td&gt;
&lt;td&gt;Extra free reports and IndexNow support&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Main limit&lt;/td&gt;
&lt;td&gt;Shows Google data only, with no keyword ideas&lt;/td&gt;
&lt;td&gt;Smaller search audience, so less data on a small site&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Proving you own the site&lt;/td&gt;
&lt;td&gt;DNS record, HTML file, meta tag and other ways&lt;/td&gt;
&lt;td&gt;DNS record, XML file, meta tag, or import from Search Console&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Search data&lt;/td&gt;
&lt;td&gt;Clicks, impressions, click rate and position&lt;/td&gt;
&lt;td&gt;Clicks, impressions, click rate and position&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Indexing tools&lt;/td&gt;
&lt;td&gt;Page indexing report, sitemaps, URL inspection&lt;/td&gt;
&lt;td&gt;Index reports, sitemaps, URL inspection, IndexNow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Extras&lt;/td&gt;
&lt;td&gt;Core Web Vitals report, links report, manual actions&lt;/td&gt;
&lt;td&gt;Backlink data, keyword research, a site scan&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;where-google-search-console-wins&quot;&gt;Where Google Search Console wins&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;It shows the search engine your readers use most.&lt;/strong&gt; Google holds by far the larger share of search, so for most blogs its data covers most of the people who find you through search. If a post drops, this is where the drop shows up first.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Google tells you about problems here.&lt;/strong&gt; If Google takes a manual action against a page, or finds a security issue such as hacked content, it reports it in Search Console. There is no other place to get that notice from Google.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Its page indexing report explains why a page is left out.&lt;/strong&gt; For each page Google knows about but does not index, the report gives a reason, such as a &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/noindex/&quot;&gt;Noindex&lt;/a&gt; tag, a redirect or a duplicate. You can then fix the cause and ask Google to check again.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It reports Core Web Vitals from real visits.&lt;/strong&gt; The report groups your pages by how fast they load and respond for real Chrome users. Our post on &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/core-web-vitals/&quot;&gt;Core Web Vitals explained for writers&lt;/a&gt; explains what each one means.&lt;/p&gt;
&lt;p&gt;You can check every point above in &lt;a href=&quot;https://search.google.com/search-console/about&quot;&gt;Google&#39;s own overview of the tool&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;where-bing-webmaster-tools-wins&quot;&gt;Where Bing Webmaster Tools wins&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;It supports IndexNow.&lt;/strong&gt; IndexNow is an open way to tell search engines that a page is new, changed or gone, the moment it happens. Bing and several other engines take part. Google Search does not use IndexNow, so this is a reason to use Bing&#39;s tool, not a reason to drop Google&#39;s.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It imports your sites from Search Console.&lt;/strong&gt; If you already use Google&#39;s tool, you can sign in, choose import, and your verified sites and sitemaps come across. There is no new file or DNS record to add.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It shows links from other sites for free.&lt;/strong&gt; The backlinks report lists sites that link to yours, with the pages and the link words. A &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/backlink/&quot;&gt;Backlink&lt;/a&gt; report like this usually needs a paid tool.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It has a free keyword research tool.&lt;/strong&gt; You can look up how often people search a phrase on Bing and see related phrases. The numbers are Bing&#39;s own, so treat them as a rough guide to &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/search-volume/&quot;&gt;demand&lt;/a&gt;, not as the whole market.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Its data reaches past Bing.&lt;/strong&gt; Bing&#39;s index also powers some other search services, so the indexing problems it shows you can affect more than Bing alone.&lt;/p&gt;
&lt;p&gt;Microsoft lists the features on the &lt;a href=&quot;https://www.bing.com/webmasters/about&quot;&gt;Bing Webmaster Tools about page&lt;/a&gt;.&lt;/p&gt;
&lt;aside class=&quot;callout callout-tip&quot;&gt;
&lt;p&gt;Submit the same &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/glossary/xml-sitemap/&quot;&gt;sitemap file&lt;/a&gt; to both tools. It costs nothing, and a page that one engine finds but the other misses is a clue worth following.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;which-one-to-choose&quot;&gt;Which one to choose&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;A new blog with little time.&lt;/strong&gt; Set up Google&#39;s tool this week and nothing else yet. &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/search-console-setup/&quot;&gt;Our 15 minute setup guide&lt;/a&gt; walks you through it, step by step.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A blog that publishes often.&lt;/strong&gt; Add Bing Webmaster Tools and turn on IndexNow, through your platform or a plugin, so new posts get found the day they go live.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A blog with no budget for paid tools.&lt;/strong&gt; Use both. Lean on Google for search data and indexing, and on Bing Webmaster Tools for links and keyword ideas. Together they cover much of what a paid suite gives a small site.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A team that must explain results to a client.&lt;/strong&gt; Report from Search Console, and check Bing Webmaster Tools once a month for problems Google&#39;s tool did not show.&lt;/p&gt;
&lt;aside class=&quot;callout callout-read&quot;&gt;
&lt;p&gt;For the wider set of free tools we use, read &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/best-free-seo-tools/&quot;&gt;our seven picks for a small blog&lt;/a&gt;. For how to choose tools at all, start with &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/choosing-seo-tools/&quot;&gt;our guide to picking SEO tools&lt;/a&gt;.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;how-we-compared-them&quot;&gt;How we compared them&lt;/h2&gt;
&lt;p&gt;Tomas Lindqvist, our technical SEO lead, has used both tools on Larkspur&#39;s own site and on client sites since 2024. Dalia Moreno checked every point in the table against each tool&#39;s own pages in September 2026.&lt;/p&gt;
&lt;p&gt;We compared only features that both search engines document and that a small blog would use:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What we checked&lt;/th&gt;
&lt;th&gt;How we checked it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Features&lt;/td&gt;
&lt;td&gt;Each tool&#39;s own help pages, read in September 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Setup&lt;/td&gt;
&lt;td&gt;Adding and verifying a test site in each tool&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Daily use&lt;/td&gt;
&lt;td&gt;Two years of use on our own site and client sites&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Accuracy&lt;/td&gt;
&lt;td&gt;A second editor checked every row of the table&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;We did not compare numbers between the two tools, because each one counts clicks and impressions in its own way. We do not take payment from Google or Microsoft, and neither saw this post before it went live. You can read &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/editorial-policy/&quot;&gt;the rules our editors follow&lt;/a&gt; in full.&lt;/p&gt;
&lt;p&gt;Features change. If you find a point in this post that is no longer true, &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/contact/&quot;&gt;write to our editors&lt;/a&gt; and we will fix it.&lt;/p&gt;
&lt;form class=&quot;subscribe&quot; method=&quot;post&quot; action=&quot;/subscribe&quot;&gt;
&lt;p&gt;&lt;label for=&quot;subscribe-1-email&quot;&gt;Your email address&lt;/label&gt;
&lt;input id=&quot;subscribe-1-email&quot; name=&quot;email&quot; type=&quot;email&quot; autocomplete=&quot;email&quot; required /&gt;&lt;/p&gt;
&lt;p class=&quot;form-trap&quot; aria-hidden=&quot;true&quot;&gt;&lt;label for=&quot;subscribe-1-homepage&quot;&gt;Leave this empty&lt;/label&gt;
&lt;input id=&quot;subscribe-1-homepage&quot; name=&quot;homepage&quot; type=&quot;text&quot; tabindex=&quot;-1&quot; autocomplete=&quot;off&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;button type=&quot;submit&quot;&gt;Get one practical post a week&lt;/button&gt;&lt;/p&gt;
&lt;/form&gt;
</content>
  </entry>
  <entry>
    <title>How to measure content ROI without a data team</title>
    <id>https://thebigasif.github.io/khalid/templates/almanac/content-roi/</id>
    <link rel="alternate" type="text/html" href="https://thebigasif.github.io/khalid/templates/almanac/content-roi/"/>
    <published>2026-09-01T00:00:00Z</published>
    <updated>2026-09-01T00:00:00Z</updated>
    <author>
      <name>Priya Raman</name>
    </author>
    <summary>A simple way for a small team to measure content ROI with the tools it already has, one spreadsheet and an honest count of hours and results.</summary>
    <content type="html">&lt;p&gt;Content ROI is the return a blog post brings back for the time and money it cost to make. You do not need a data team or an expensive dashboard to measure it. You need a spreadsheet, an honest count of hours, and an agreement on what a good result is worth.&lt;/p&gt;
&lt;p&gt;This post shows the method we use with small teams. It takes about an hour to set up and a few minutes a month to keep.&lt;/p&gt;
&lt;h2 id=&quot;decide-what-a-result-is-worth&quot;&gt;Decide what a result is worth&lt;/h2&gt;
&lt;p&gt;Before you count anything, agree on what a post is for. A blog post can earn its keep in a few ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Leads.&lt;/strong&gt; A reader asks for a demo, books a call or fills in a contact form.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sign-ups.&lt;/strong&gt; A reader joins your newsletter or starts a free trial.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sales help.&lt;/strong&gt; Your sales team sends the post to a prospect to answer a question.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Support saved.&lt;/strong&gt; A help question gets answered by a post instead of a person.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pick the one or two that matter most to your business, and put a rough value on each. Content ROI only works when everyone agrees on these values first. If one in ten demo requests turns into a customer worth a known amount, a demo request is worth a tenth of that. Rough is fine. A rough number you use beats a perfect number you never agree on.&lt;/p&gt;
&lt;h2 id=&quot;count-the-cost-honestly&quot;&gt;Count the cost honestly&lt;/h2&gt;
&lt;p&gt;The cost side of content ROI is mostly time. Count every hour, not just the writing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Planning and the brief&lt;/li&gt;
&lt;li&gt;Research and interviews&lt;/li&gt;
&lt;li&gt;Writing the first draft&lt;/li&gt;
&lt;li&gt;Editing and fact checks&lt;/li&gt;
&lt;li&gt;Images, layout and publishing&lt;/li&gt;
&lt;li&gt;Refreshing it later&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Multiply the hours by a fair hourly cost for the people involved. Add anything you paid for: freelance help, stock images or tools used only for that post. Teams that skip the editing and planning hours make their content look cheaper than it is, and then wonder why the numbers do not add up.&lt;/p&gt;
&lt;h2 id=&quot;the-formula-for-content-roi&quot;&gt;The formula for content ROI&lt;/h2&gt;
&lt;p&gt;The sum is the same one any investment uses. Take what the post brought in, subtract what it cost, and divide by what it cost:&lt;/p&gt;
&lt;figure class=&quot;maths&quot;&gt;
&lt;math display=&quot;block&quot;&gt;&lt;mtext&gt;ROI&lt;/mtext&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mfrac&gt;&lt;mrow&gt;&lt;mtext&gt;value of results&lt;/mtext&gt;&lt;mo&gt;−&lt;/mo&gt;&lt;mtext&gt;cost of the post&lt;/mtext&gt;&lt;/mrow&gt;&lt;mtext&gt;cost of the post&lt;/mtext&gt;&lt;/mfrac&gt;&lt;mo lspace=&quot;0.2222em&quot; rspace=&quot;0.2222em&quot;&gt;×&lt;/mo&gt;&lt;mn&gt;100&lt;/mn&gt;&lt;/math&gt;
&lt;figcaption&gt;Return on content&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;A result above zero means the post paid for itself. A result below zero means it has not yet, which is normal for a young post. Search traffic grows over months, so judge a post on its first year, not its first week.&lt;/p&gt;
&lt;aside class=&quot;callout callout-note&quot;&gt;
&lt;p&gt;&lt;strong&gt;ROI&lt;/strong&gt; stands for return on investment. It is the gain from something, shown as a share of what it cost. A result of fifty means the post earned back its cost and half as much again.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;track-content-roi-in-one-spreadsheet&quot;&gt;Track content ROI in one spreadsheet&lt;/h2&gt;
&lt;p&gt;Make one row per post and one column per thing you count. Keep a column for the publish date, the hours, the cost, each kind of result, and the value. The return column then works itself out. If the value of results sits in column E and the cost in column D, the return for a row is:&lt;/p&gt;
&lt;pre class=&quot;syntax-highlighting&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;&lt;span class=&quot;hl-text hl-plain&quot;&gt;=(E:E-D:D)/D:D
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Most spreadsheet apps accept whole-column ranges like these. Write the formula once and fill it down. Every month, add the new results from your analytics and your sales notes. It takes ten minutes when the habit is set.&lt;/p&gt;
&lt;aside class=&quot;callout callout-stat&quot;&gt;
&lt;p&gt;&lt;strong&gt;1.6 times&lt;/strong&gt; more search clicks went to posts updated within the year than to untouched posts, in &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/content-benchmark/&quot;&gt;our 2026 content benchmark&lt;/a&gt;.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;read-the-numbers-with-care&quot;&gt;Read the numbers with care&lt;/h2&gt;
&lt;p&gt;A spreadsheet can mislead as easily as it can help. Three habits keep content ROI honest:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Give each post time.&lt;/strong&gt; Compare posts of the same age. A two-month-old post will lose to a two-year-old one every time.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Count assists.&lt;/strong&gt; A reader may find you through a post and buy weeks later through another page. Ask new customers how they found you, and give the post credit when they name it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Count the cost of refreshing.&lt;/strong&gt; An update has a cost too, and it often has the best return of any work on the blog.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That last point is why we budget time for old posts. Our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/content-refresh/&quot;&gt;playbook for refreshing posts that slipped&lt;/a&gt; explains how to choose which ones to update first.&lt;/p&gt;
&lt;div class=&quot;proscons&quot;&gt;
&lt;div class=&quot;pros&quot;&gt;
&lt;p class=&quot;proscons-title&quot;&gt;Pros&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Uses tools the team already has&lt;/li&gt;
&lt;li&gt;Takes about an hour to set up&lt;/li&gt;
&lt;li&gt;Makes the case for content in plain numbers&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;cons&quot;&gt;
&lt;p class=&quot;proscons-title&quot;&gt;Cons&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Values are rough guesses at first&lt;/li&gt;
&lt;li&gt;Misses readers who buy much later without saying how they found you&lt;/li&gt;
&lt;li&gt;Needs a monthly habit to stay current&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&quot;turn-the-numbers-into-decisions&quot;&gt;Turn the numbers into decisions&lt;/h2&gt;
&lt;p&gt;The point of measuring content ROI is to choose better next time. Once a quarter, sort the sheet by return and look at the top and the bottom.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Top posts.&lt;/strong&gt; What do they share? A topic, a format, a kind of question? Plan more posts like them.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bottom posts.&lt;/strong&gt; Were they the wrong question, or the right question answered badly? A weak answer can be refreshed. A wrong question can be dropped.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Missing posts.&lt;/strong&gt; Which questions from sales and support have no post yet? They are often the cheapest wins.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Feed those choices straight into your &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/content-calendar/&quot;&gt;content calendar for the next quarter&lt;/a&gt;, so the plan follows the evidence instead of the loudest idea in the room.&lt;/p&gt;
&lt;h2 id=&quot;a-worked-example&quot;&gt;A worked example&lt;/h2&gt;
&lt;p&gt;Here is how one row looks for a fictional software company. A how-to post took eighteen hours from brief to publish, at a fair cost per hour. In its first year it brought six demo requests and forty newsletter sign-ups. The team valued each demo request and each sign-up using their own sales numbers, added the two values, subtracted the cost and divided by the cost.&lt;/p&gt;
&lt;p&gt;The content ROI was well above zero. The post paid for itself about three times over in its first year. The same sheet showed that two other posts had not earned their cost, and both answered questions nobody had asked the sales team. The team dropped one and rewrote the other around a real customer question.&lt;/p&gt;
&lt;p&gt;For the wider theory of measuring marketing returns, Google&#39;s guide to &lt;a href=&quot;https://support.google.com/analytics/answer/12844695&quot;&gt;setting up key events in Analytics&lt;/a&gt; explains how to count the results you choose.&lt;/p&gt;
&lt;p&gt;To see where the readers behind those results come from, our &lt;a href=&quot;https://thebigasif.github.io/khalid/templates/almanac/search-traffic/&quot;&gt;three monthly search traffic charts&lt;/a&gt; show the visits by month, by page and from AI search.&lt;/p&gt;
</content>
  </entry>
</feed>
