<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Larkspur Ledger</title>
    <link>https://serpdad.com/khalid/templates/classic/</link>
    <description>SEO and content writing notes from Larkspur Studio</description>
    <language>en</language>
    <lastBuildDate>Sat, 31 Oct 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://serpdad.com/khalid/templates/classic/feed.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>News: our 2026 benchmark data is free to download</title>
      <link>https://serpdad.com/khalid/templates/classic/news/benchmark-data-open/</link>
      <guid isPermaLink="true">https://serpdad.com/khalid/templates/classic/news/benchmark-data-open/</guid>
      <pubDate>Sat, 31 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Priya Raman</dc:creator>
      <description>Sample benchmark data from our 2026 content benchmark is now free to download under an open licence, with a data dictionary and method notes.</description>
      <content:encoded>&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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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:encoded>
    </item>
    <item>
      <title>AI referral traffic: finding AI visits in analytics</title>
      <link>https://serpdad.com/khalid/templates/classic/ai-referral-traffic/</link>
      <guid isPermaLink="true">https://serpdad.com/khalid/templates/classic/ai-referral-traffic/</guid>
      <pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Priya Raman</dc:creator>
      <description>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.</description>
      <content:encoded>&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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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:encoded>
    </item>
    <item>
      <title>How AI search chooses the pages it quotes</title>
      <link>https://serpdad.com/khalid/templates/classic/ai-search-sources/</link>
      <guid isPermaLink="true">https://serpdad.com/khalid/templates/classic/ai-search-sources/</guid>
      <pubDate>Tue, 27 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Priya Raman</dc:creator>
      <description>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.</description>
      <content:encoded>&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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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;
</content:encoded>
    </item>
    <item>
      <title>Podcast episode one: put the answer first for AI search</title>
      <link>https://serpdad.com/khalid/templates/classic/podcast-answer-first/</link>
      <guid isPermaLink="true">https://serpdad.com/khalid/templates/classic/podcast-answer-first/</guid>
      <pubDate>Fri, 23 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Priya Raman</dc:creator>
      <description>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.</description>
      <content:encoded>&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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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:encoded>
    </item>
    <item>
      <title>The content brief template we use for every post</title>
      <link>https://serpdad.com/khalid/templates/classic/content-brief-template/</link>
      <guid isPermaLink="true">https://serpdad.com/khalid/templates/classic/content-brief-template/</guid>
      <pubDate>Tue, 20 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Maren Okafor</dc:creator>
      <description>The content brief template Larkspur Studio fills in before any post is written, section by section, with a finished example you can copy.</description>
      <content:encoded>&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:encoded>
    </item>
    <item>
      <title>Video notes: debugging INP with field data</title>
      <link>https://serpdad.com/khalid/templates/classic/inp-video-notes/</link>
      <guid isPermaLink="true">https://serpdad.com/khalid/templates/classic/inp-video-notes/</guid>
      <pubDate>Fri, 16 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Tomas Lindqvist</dc:creator>
      <description>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.</description>
      <content:encoded>&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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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:encoded>
    </item>
    <item>
      <title>Structured data for blog posts, step by step</title>
      <link>https://serpdad.com/khalid/templates/classic/structured-data/</link>
      <guid isPermaLink="true">https://serpdad.com/khalid/templates/classic/structured-data/</guid>
      <pubDate>Tue, 13 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Tomas Lindqvist</dc:creator>
      <description>What structured data tells search engines about a blog post, which fields matter, and how to add it and test it without breaking anything.</description>
      <content:encoded>&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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/ai-search-sources/&quot;&gt;how AI search decides what to quote&lt;/a&gt;.&lt;/p&gt;
</content:encoded>
    </item>
    <item>
      <title>The 2026 content benchmark data, free to download</title>
      <link>https://serpdad.com/khalid/templates/classic/content-benchmark-data/</link>
      <guid isPermaLink="true">https://serpdad.com/khalid/templates/classic/content-benchmark-data/</guid>
      <pubDate>Fri, 9 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Priya Raman</dc:creator>
      <description>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.</description>
      <content:encoded>&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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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 file, 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&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://serpdad.com/khalid/templates/classic/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 file 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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/content-refresh/&quot;&gt;refreshing posts that slipped&lt;/a&gt; and &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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:encoded>
    </item>
    <item>
      <title>The 2026 content benchmark: what 140 blogs show</title>
      <link>https://serpdad.com/khalid/templates/classic/content-benchmark/</link>
      <guid isPermaLink="true">https://serpdad.com/khalid/templates/classic/content-benchmark/</guid>
      <pubDate>Tue, 6 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Priya Raman</dc:creator>
      <description>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.</description>
      <content:encoded>&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/classic/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 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 we 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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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/classic/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/classic/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://serpdad.com/khalid/templates/classic/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:encoded>
    </item>
    <item>
      <title>How to set up Google Search Console in 15 minutes</title>
      <link>https://serpdad.com/khalid/templates/classic/search-console-setup/</link>
      <guid isPermaLink="true">https://serpdad.com/khalid/templates/classic/search-console-setup/</guid>
      <pubDate>Fri, 2 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Tomas Lindqvist</dc:creator>
      <description>Add your blog to Google Search Console, prove you own it, submit a sitemap and check your pages are indexed, in six short steps.</description>
      <content:encoded>&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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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:encoded>
    </item>
    <item>
      <title>Core Web Vitals explained for content writers</title>
      <link>https://serpdad.com/khalid/templates/classic/core-web-vitals/</link>
      <guid isPermaLink="true">https://serpdad.com/khalid/templates/classic/core-web-vitals/</guid>
      <pubDate>Tue, 29 Sep 2026 00:00:00 +0000</pubDate>
      <dc:creator>Tomas Lindqvist</dc:creator>
      <description>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.</description>
      <content:encoded>&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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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/classic/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 score 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. 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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/ai-search-sources/&quot;&gt;which pages AI tools choose to quote&lt;/a&gt; shows why.&lt;/p&gt;
</content:encoded>
    </item>
    <item>
      <title>The 7 best free SEO tools for a small blog</title>
      <link>https://serpdad.com/khalid/templates/classic/best-free-seo-tools/</link>
      <guid isPermaLink="true">https://serpdad.com/khalid/templates/classic/best-free-seo-tools/</guid>
      <pubDate>Tue, 22 Sep 2026 00:00:00 +0000</pubDate>
      <dc:creator>Dalia Moreno</dc:creator>
      <description>Seven free SEO tools that cover search data, page speed, structured data, crawling and trends for a small blog, with the limit of each.</description>
      <content:encoded>&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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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.&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 tools that do the same job as a pick above. Nobody paid to be on this list, as &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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:encoded>
    </item>
    <item>
      <title>A content refresh playbook for posts that slipped</title>
      <link>https://serpdad.com/khalid/templates/classic/content-refresh/</link>
      <guid isPermaLink="true">https://serpdad.com/khalid/templates/classic/content-refresh/</guid>
      <pubDate>Tue, 15 Sep 2026 00:00:00 +0000</pubDate>
      <dc:creator>Priya Raman</dc:creator>
      <description>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.</description>
      <content:encoded>&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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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:encoded>
    </item>
    <item>
      <title>How to write answer capsules AI search can quote</title>
      <link>https://serpdad.com/khalid/templates/classic/answer-capsules/</link>
      <guid isPermaLink="true">https://serpdad.com/khalid/templates/classic/answer-capsules/</guid>
      <pubDate>Wed, 9 Sep 2026 00:00:00 +0000</pubDate>
      <dc:creator>Maren Okafor</dc:creator>
      <description>Answer capsules are short, plain answers under question headings that readers, featured snippets and AI search can lift whole. With examples.</description>
      <content:encoded>&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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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/classic/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:encoded>
    </item>
    <item>
      <title>Google Search Console vs Bing Webmaster Tools</title>
      <link>https://serpdad.com/khalid/templates/classic/search-console-vs-bing-webmaster-tools/</link>
      <guid isPermaLink="true">https://serpdad.com/khalid/templates/classic/search-console-vs-bing-webmaster-tools/</guid>
      <pubDate>Tue, 8 Sep 2026 00:00:00 +0000</pubDate>
      <dc:creator>Tomas Lindqvist</dc:creator>
      <description>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.</description>
      <content:encoded>&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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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:encoded>
    </item>
    <item>
      <title>How to measure content ROI without a data team</title>
      <link>https://serpdad.com/khalid/templates/classic/content-roi/</link>
      <guid isPermaLink="true">https://serpdad.com/khalid/templates/classic/content-roi/</guid>
      <pubDate>Tue, 1 Sep 2026 00:00:00 +0000</pubDate>
      <dc:creator>Priya Raman</dc:creator>
      <description>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.</description>
      <content:encoded>&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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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://serpdad.com/khalid/templates/classic/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;
</content:encoded>
    </item>
    <item>
      <title>Hreflang for a two-language blog, step by step</title>
      <link>https://serpdad.com/khalid/templates/classic/hreflang-guide/</link>
      <guid isPermaLink="true">https://serpdad.com/khalid/templates/classic/hreflang-guide/</guid>
      <pubDate>Mon, 31 Aug 2026 00:00:00 +0000</pubDate>
      <dc:creator>Tomas Lindqvist</dc:creator>
      <description>How to use hreflang to tell search engines which language each version of a post is in, with the tags from our English and German posts.</description>
      <content:encoded>&lt;p&gt;Hreflang is a short tag that tells search engines a page exists in other languages, and where each version lives. Get it right and a reader in Hamburg sees the German post while a reader in Leeds sees the English one. Get it wrong and search engines quietly ignore the lot.&lt;/p&gt;
&lt;p&gt;We run this blog in English and German, so we have made most of the hreflang mistakes ourselves. This post shows the tags on our own pages, the rules behind them, and the errors we see most in audits. It belongs to our &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/technical-seo-audit/&quot;&gt;full technical SEO audit&lt;/a&gt;, where language tags are one check among many.&lt;/p&gt;
&lt;aside class=&quot;callout callout-summary&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Every version lists every version,&lt;/strong&gt; itself included.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Links must go both ways.&lt;/strong&gt; If the German page names the English one, the English page must name the German one.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use a language code, then an optional region.&lt;/strong&gt; Never a region on its own.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Add x-default&lt;/strong&gt; for readers whose language you do not cover.&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;#what-hreflang-tells-search-engines&quot;&gt;What hreflang tells search engines&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#the-rules-every-set-of-tags-must-follow&quot;&gt;The rules every set of tags must follow&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#our-own-example-one-post-in-two-languages&quot;&gt;Our own example: one post in two languages&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#where-to-put-the-tags&quot;&gt;Where to put the tags&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#set-up-hreflang-on-a-two-language-blog&quot;&gt;Set up hreflang on a two-language blog&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#common-hreflang-mistakes-and-their-fixes&quot;&gt;Common hreflang mistakes and their fixes&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#what-the-tags-do-not-do&quot;&gt;What the tags do not do&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/nav&gt;
&lt;h2 id=&quot;what-hreflang-tells-search-engines&quot;&gt;What hreflang tells search engines&lt;/h2&gt;
&lt;p&gt;A translated post is a set of language versions: pages that say the same thing to different readers. The tag names every member of that set and its language. Google can then pick the version that suits the person searching, and show it in place of the others.&lt;/p&gt;
&lt;p&gt;The glossary entry on &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/glossary/hreflang/&quot;&gt;language tags&lt;/a&gt; has the short version. The details below are from Google&#39;s guide to &lt;a href=&quot;https://developers.google.com/search/docs/specialty/international/localized-versions&quot;&gt;localised versions of your pages&lt;/a&gt;, which is the reference we check against.&lt;/p&gt;
&lt;h2 id=&quot;the-rules-every-set-of-tags-must-follow&quot;&gt;The rules every set of tags must follow&lt;/h2&gt;
&lt;p&gt;Google&#39;s rules are few, and each one matters. Break one and the whole set can be dropped.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Name every version, including the page itself.&lt;/strong&gt; A page that leaves itself out of its own list is a common slip.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Return links are required.&lt;/strong&gt; If page A points to page B, page B must point back to A. Without the return link, Google ignores the pair.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use full addresses.&lt;/strong&gt; Write the whole address with the domain, not a path that starts with a slash.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Codes follow two standards.&lt;/strong&gt; The language comes first, as a &lt;a href=&quot;https://www.loc.gov/standards/iso639-2/php/code_list.php&quot;&gt;two-letter ISO 639-1 code&lt;/a&gt;. A region can follow, as an &lt;a href=&quot;https://www.iso.org/iso-3166-country-codes.html&quot;&gt;ISO 3166-1 Alpha 2 country code&lt;/a&gt;, so &lt;code&gt;de&lt;/code&gt; is German and &lt;code&gt;de-AT&lt;/code&gt; is German for readers in Austria.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Add a fallback.&lt;/strong&gt; The value &lt;code&gt;x-default&lt;/code&gt; names the page to show when no version matches the reader&#39;s language.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;our-own-example-one-post-in-two-languages&quot;&gt;Our own example: one post in two languages&lt;/h2&gt;
&lt;p&gt;Our post on &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/core-web-vitals/&quot;&gt;Core Web Vitals for writers&lt;/a&gt; has a German translation at &lt;code&gt;/khalid/templates/classic/de/core-web-vitals/&lt;/code&gt;. You can browse every German post from our &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/de/&quot;&gt;German home page&lt;/a&gt;. Both versions of that post carry the same three lines in the head of the page:&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;link&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;rel&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;alternate&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;hreflang&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;en&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;href&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;https://www.example.com/blog/core-web-vitals/&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 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;link&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;rel&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;alternate&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;hreflang&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;de&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;href&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;https://www.example.com/blog/de/core-web-vitals/&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 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;link&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;rel&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;alternate&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;hreflang&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;x-default&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;href&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;https://www.example.com/blog/core-web-vitals/&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;The lines are the same on both pages. That is the point: each page names itself, names the other, and names the fallback. Our fallback is English, because a reader whose language we do not cover is more likely to read English than German.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&quot;/khalid/templates/classic/hreflang-guide/pairs.svg&quot; alt=&quot;Hreflang diagram of the English and German versions of a post pointing to themselves and to each other, with a fallback arrow to the English page&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; /&gt;
&lt;figcaption&gt;
&lt;p&gt;Each page points at itself and at its partner, and both name the English page as the fallback. Notice that the arrows run both ways: remove one and Google can ignore the pair.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;aside class=&quot;callout callout-note&quot;&gt;
&lt;p&gt;Our blog engine writes these tags for us. Each post&#39;s front matter has a &lt;code&gt;translation&lt;/code&gt; field, and every post that shares the same value is treated as one set. If your engine has no such field, you will be writing the tags by hand or with a plugin.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;where-to-put-the-tags&quot;&gt;Where to put the tags&lt;/h2&gt;
&lt;p&gt;Google reads the same information from three places. Pick one and use it everywhere, so you have one list to keep in step.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Place&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;th&gt;Watch out for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Link tags in the page head&lt;/td&gt;
&lt;td&gt;Most blogs&lt;/td&gt;
&lt;td&gt;Every template must print them&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTTP headers&lt;/td&gt;
&lt;td&gt;Files such as PDFs that have no head&lt;/td&gt;
&lt;td&gt;Needs access to the server settings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The sitemap&lt;/td&gt;
&lt;td&gt;Large sites with many versions&lt;/td&gt;
&lt;td&gt;The file grows fast with each language&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;If you choose the sitemap route, each address lists its partners inside its own entry. Our guide to &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/xml-sitemaps/&quot;&gt;what belongs in an XML sitemap&lt;/a&gt; covers the rest of that file. We link the &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/glossary/xml-sitemap/&quot;&gt;sitemap format&lt;/a&gt; in the glossary if you need a primer.&lt;/p&gt;
&lt;h2 id=&quot;set-up-hreflang-on-a-two-language-blog&quot;&gt;Set up hreflang on a two-language blog&lt;/h2&gt;
&lt;ol class=&quot;howto&quot;&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;List each pair&lt;/p&gt;
&lt;p&gt;Make a sheet with one row per post: the English address in one column and its translation in the next. Leave the second cell empty where there is no translation yet.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Choose your codes&lt;/p&gt;
&lt;p&gt;Use plain language codes, such as &lt;code&gt;en&lt;/code&gt; and &lt;code&gt;de&lt;/code&gt;, unless you write different versions for different countries. Most blogs do not need a region.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Pick the fallback&lt;/p&gt;
&lt;p&gt;Choose the version to show readers in other languages. For most blogs that is the original language.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Add the tags to both pages&lt;/p&gt;
&lt;p&gt;Put the full set on every version, including a line for the page itself and one for the fallback.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;howto-step&quot;&gt;Check the return links&lt;/p&gt;
&lt;p&gt;Open each translated page and confirm it names its partner. A missing return link is the most common reason a set is ignored.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;aside class=&quot;callout callout-tip&quot;&gt;
&lt;p&gt;Translate the slug as well as the post when the words differ. A German reader trusts an address in German, and the tags do not care what the address says.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;common-hreflang-mistakes-and-their-fixes&quot;&gt;Common hreflang mistakes and their fixes&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Mistake&lt;/th&gt;
&lt;th&gt;What happens&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;The page leaves itself out&lt;/td&gt;
&lt;td&gt;The set is incomplete&lt;/td&gt;
&lt;td&gt;Add a line for the page itself&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No return link&lt;/td&gt;
&lt;td&gt;Google ignores the pair&lt;/td&gt;
&lt;td&gt;Add the tag to the partner page too&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;en-UK&lt;/code&gt; as a code&lt;/td&gt;
&lt;td&gt;The region code is not valid&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;en-GB&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A region on its own, such as &lt;code&gt;gb&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read as a language code, not a country&lt;/td&gt;
&lt;td&gt;Start with the language: &lt;code&gt;en-GB&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A canonical tag points to the other language&lt;/td&gt;
&lt;td&gt;The two signals clash&lt;/td&gt;
&lt;td&gt;Point each page&#39;s canonical at itself&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A tag points to a redirect or an error&lt;/td&gt;
&lt;td&gt;That version is dropped&lt;/td&gt;
&lt;td&gt;Point it at the final, live address&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The canonical mistake deserves a word. A &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/glossary/canonical-url/&quot;&gt;canonical address&lt;/a&gt; tells search engines which page is the real one among copies. A German translation is not a copy of the English post, so each version should name itself as canonical.&lt;/p&gt;
&lt;aside class=&quot;callout callout-warning&quot;&gt;
&lt;p&gt;Never point the canonical tag of a translation at the original. You are telling Google the German page is a copy, and it may stop showing it at all.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;what-the-tags-do-not-do&quot;&gt;What the tags do not do&lt;/h2&gt;
&lt;p&gt;Hreflang helps Google choose which version to show. It does not merge the versions, and it does not lift either one up the rankings. A good translation still has to earn its place.&lt;/p&gt;
&lt;p&gt;The tags also do not stop Google treating two near-identical pages in the same language as duplicates. If you publish one English post for readers in Britain and one for readers in Ireland, and only the spelling differs, expect one of them to be picked as the main version. Hreflang still helps Google show the right address, but the content itself must differ enough to justify two pages.&lt;/p&gt;
&lt;!--khalid-cta--&gt;
</content:encoded>
    </item>
    <item>
      <title>Quillmeter review: a readability checker for editors</title>
      <link>https://serpdad.com/khalid/templates/classic/quillmeter-review/</link>
      <guid isPermaLink="true">https://serpdad.com/khalid/templates/classic/quillmeter-review/</guid>
      <pubDate>Tue, 25 Aug 2026 00:00:00 +0000</pubDate>
      <dc:creator>Dalia Moreno</dc:creator>
      <description>Our Quillmeter review after six months of daily use. What the readability checker does well, where it falls short, and who should skip it.</description>
      <content:encoded>&lt;p&gt;Quillmeter suits editors and solo writers who want a quiet readability checker that marks long sentences and rare words and leaves the fixing to them. Skip it if you want a tool that rewrites for you, or if a whole team must share one set of rules. Our score after six months of daily use: four out of five.&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-it-does-well&quot;&gt;What it does well&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#where-it-falls-short&quot;&gt;Where it falls short&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#who-quillmeter-is-for&quot;&gt;Who Quillmeter is for&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#how-we-tested-it&quot;&gt;How we tested it&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#the-verdict&quot;&gt;The verdict&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;What it is:&lt;/strong&gt; a small desktop app that checks a draft as you type and works offline.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Best at:&lt;/strong&gt; marking long sentences and rare words in place, without touching your words.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Weakest at:&lt;/strong&gt; technical terms, which it flags as problems, and team use, which it does not support.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Our score:&lt;/strong&gt; &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/editorial-policy/&quot;&gt;4&lt;/a&gt; out of 5, given the way our editorial policy sets out for every tool we review.&lt;/li&gt;
&lt;/ul&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;what-it-does-well&quot;&gt;What it does well&lt;/h2&gt;
&lt;p&gt;Quillmeter does one job and stays out of the way. You paste a draft or open a file, and it marks two things: sentences that run long, and words most readers rarely meet. It does not suggest new words. It does not score your &amp;quot;tone&amp;quot;. It shows you where a reader may stall, and you decide what to do.&lt;/p&gt;
&lt;p&gt;That restraint is the main reason we kept it. Tools that rewrite for you tend to flatten a writer&#39;s voice, and they make it easy to accept a change you did not read. With Quillmeter the writer stays in charge of every word, which is how we want our editors to work on &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/editing-checklist/&quot;&gt;the sentence step of our editing checklist&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Three more things stood out in our own use:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;It is fast.&lt;/strong&gt; On the longest guide we edited this year, the marks kept up with our typing. We never waited for a check to finish.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;It works offline.&lt;/strong&gt; We edited two client drafts on a train with no signal, and every check still ran. Nothing leaves your machine, which matters when a client has not yet published.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The limits are yours to set.&lt;/strong&gt; You choose how many words make a sentence &amp;quot;long&amp;quot;. We set ours at twenty-five words, and Quillmeter marked exactly the sentences we would have marked by hand.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;gallery&quot;&gt;
&lt;figure&gt;&lt;img src=&quot;/khalid/templates/classic/quillmeter-review/screen-flag.svg&quot; alt=&quot;Quillmeter marking a 31 word sentence in peach, with a note in the side panel that reads Long sentence, 31 words&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; /&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;img src=&quot;/khalid/templates/classic/quillmeter-review/screen-settings.svg&quot; alt=&quot;The Quillmeter settings panel, with the long sentence limit set to 25 words and the rare word check switched on&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; /&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;h2 id=&quot;where-it-falls-short&quot;&gt;Where it falls short&lt;/h2&gt;
&lt;p&gt;No readability checker is perfect, and Quillmeter has two clear gaps. Each one cost us time on real work.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It treats technical terms as problems.&lt;/strong&gt; On a post about &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/structured-data/&quot;&gt;structured data&lt;/a&gt; for a client, Quillmeter marked &amp;quot;schema&amp;quot;, &amp;quot;markup&amp;quot; and &amp;quot;canonical&amp;quot; in almost every paragraph. Those are the words a specialist reader expects. You can add words to a personal list so it stops marking them, but you have to do it one word at a time, and the list does not travel with the draft.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It has no team settings.&lt;/strong&gt; Each copy of Quillmeter keeps its own limits and word list. When three of our editors checked the same draft, they saw different marks, because one had set a lower limit for long sentences than the other two. We now keep the settings in a shared note and copy them by hand, which is a workaround, not a fix.&lt;/p&gt;
&lt;p&gt;Two smaller points. It reads plain text and common document files, but it cannot check a page straight from a website, so you copy the text out first. And it does not know anything about search: it will not tell you if a heading matches &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/search-intent/&quot;&gt;what the searcher wants&lt;/a&gt;. That is fine, as long as you know it is a writing tool and not an SEO tool.&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;Marks long sentences and rare words in place, and never rewrites&lt;/li&gt;
&lt;li&gt;Fast, even on a long draft&lt;/li&gt;
&lt;li&gt;Works offline, so drafts stay on your machine&lt;/li&gt;
&lt;li&gt;You set your own limit for long sentences&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;Marks technical terms as rare words, even where the reader expects them&lt;/li&gt;
&lt;li&gt;No shared settings, so a team sees different marks on the same draft&lt;/li&gt;
&lt;li&gt;Cannot check a live web page&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&quot;who-quillmeter-is-for&quot;&gt;Who Quillmeter is for&lt;/h2&gt;
&lt;p&gt;Quillmeter fits a writer or editor who already knows what good prose looks like and wants a second pair of eyes for the slips. If you edit other people&#39;s drafts every day, it saves you the tedium of counting words in long sentences. If you write alone, it catches the habits you no longer notice.&lt;/p&gt;
&lt;p&gt;It fits less well in two cases. A team that needs one shared standard will fight the missing settings. And a writer in a technical field will spend a lot of time teaching it words. If you are still choosing between kinds of tools, start with &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/choosing-seo-tools/&quot;&gt;our guide to choosing SEO tools for a small team&lt;/a&gt;, which puts writing tools beside search tools.&lt;/p&gt;
&lt;aside class=&quot;callout callout-note&quot;&gt;
&lt;p&gt;&lt;strong&gt;How we review.&lt;/strong&gt; Nobody pays to appear in a Larkspur review, and we buy our own copies. We only review tools we have used on real client work for at least three months. We use no affiliate links, so no score here earns us money.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;how-we-tested-it&quot;&gt;How we tested it&lt;/h2&gt;
&lt;p&gt;Dalia Moreno, our tools and reviews editor, used Quillmeter every working day from February to August 2026. Two other editors used it on the same drafts so we could compare their marks.&lt;/p&gt;
&lt;p&gt;We ran it on about fifty drafts: most were client work, and a dozen were our own posts. For each draft we wrote down where Quillmeter marked a sentence and whether we changed it. We also counted the marks we ignored, which is how we found the gap with technical terms. We did not run speed tests in a lab: our notes on speed come from ordinary use on a three-year-old laptop.&lt;/p&gt;
&lt;p&gt;We judged it on four points: does it find the sentences a good editor would find, does it keep the writer in charge, is it quick enough to leave open all day, and does it fit how a team works. It scored well on the first three and poorly on the last.&lt;/p&gt;
&lt;p&gt;If you want a wider view of what to look for in a writing tool, our &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/tools/&quot;&gt;short notes on the tools we use&lt;/a&gt; cover the rest of our kit, and &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/best-free-seo-tools/&quot;&gt;our pick of free tools for a small blog&lt;/a&gt; covers the search side.&lt;/p&gt;
&lt;h2 id=&quot;the-verdict&quot;&gt;The verdict&lt;/h2&gt;
&lt;p&gt;Quillmeter is the readability checker we open first. It marks long sentences and rare words without taking the pen from the writer, it is quick, and it works anywhere. It loses a point for marking technical words a specialist reader expects, and for having no shared settings. For a solo writer or a careful editor, it earns its place. For a team that needs one standard, wait for team settings.&lt;/p&gt;
&lt;section class=&quot;review&quot;&gt;
&lt;p class=&quot;review-item&quot;&gt;Quillmeter&lt;/p&gt;
&lt;p class=&quot;review-rating&quot;&gt;4 / 5&lt;/p&gt;
&lt;p&gt;A fast, quiet readability checker that marks long sentences and rare words in place and leaves every change to you. It works offline. It loses a point for treating technical terms as problems and for having no team settings.&lt;/p&gt;
&lt;/section&gt;
&lt;p&gt;For the plain-language case behind tools like this, see the guidance on &lt;a href=&quot;https://developers.google.com/search/docs/fundamentals/creating-helpful-content&quot;&gt;writing for readers in Google&#39;s documentation&lt;/a&gt;. Good tools help, but the habit of short, clear sentences builds &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/glossary/e-e-a-t/&quot;&gt;trust with readers&lt;/a&gt; on its own.&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 next tool review&lt;/button&gt;&lt;/p&gt;
&lt;/form&gt;
</content:encoded>
    </item>
    <item>
      <title>Planning a content calendar a small team can keep</title>
      <link>https://serpdad.com/khalid/templates/classic/content-calendar/</link>
      <guid isPermaLink="true">https://serpdad.com/khalid/templates/classic/content-calendar/</guid>
      <pubDate>Tue, 18 Aug 2026 00:00:00 +0000</pubDate>
      <dc:creator>Maren Okafor</dc:creator>
      <description>How to plan a content calendar that a small team can actually keep, with a free template, a simple weekly rhythm and room for refreshing old posts.</description>
      <content:encoded>&lt;p&gt;A content calendar is a shared list of the posts you plan to publish, who writes each one, and when it is due. It sounds like admin. In practice it is the one tool that turns &amp;quot;we should blog more&amp;quot; into posts that actually go live, week after week.&lt;/p&gt;
&lt;p&gt;Most small teams try a calendar once, fill it with twenty ideas, miss the first deadline and give up. This post shows a lighter way: a calendar small enough to keep, with time built in for the work nobody plans for.&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;#why-most-calendars-fail-by-week-three&quot;&gt;Why most calendars fail by week three&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#what-a-content-calendar-should-hold&quot;&gt;What a content calendar should hold&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#pick-a-pace-you-can-hold&quot;&gt;Pick a pace you can hold&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#fill-the-calendar-from-real-questions&quot;&gt;Fill the calendar from real questions&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#run-the-calendar-in-one-short-meeting&quot;&gt;Run the calendar in one short meeting&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#leave-room-for-editing-and-refreshing&quot;&gt;Leave room for editing and refreshing&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#check-what-the-calendar-produced&quot;&gt;Check what the calendar produced&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#use-our-free-template&quot;&gt;Use our free template&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/nav&gt;
&lt;h2 id=&quot;why-most-calendars-fail-by-week-three&quot;&gt;Why most calendars fail by week three&lt;/h2&gt;
&lt;p&gt;The usual calendar is a wish list. It has a title for every Tuesday and no owner, no question and no time for editing. When one post slips, the whole plan slips with it, and the calendar becomes a record of what did not happen.&lt;/p&gt;
&lt;p&gt;Our benchmark found that in 2026, 23% of the small business blogs we read used a content calendar shared with the whole team. The rest planned in someone&#39;s head or in a chat thread. Their median pace in 2026: 2 posts a month, with long gaps between bursts.&lt;/p&gt;
&lt;p&gt;A calendar that survives has three traits. It is short, it names one owner per post, and it leaves gaps on purpose.&lt;/p&gt;
&lt;h2 id=&quot;what-a-content-calendar-should-hold&quot;&gt;What a content calendar should hold&lt;/h2&gt;
&lt;p&gt;Keep the columns few. Every column you add is one more thing to update, and a calendar nobody updates is worse than none. These six are enough:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Column&lt;/th&gt;
&lt;th&gt;What goes in it&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Week&lt;/td&gt;
&lt;td&gt;The week the post goes live&lt;/td&gt;
&lt;td&gt;Sets the pace you can see at a glance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Working title&lt;/td&gt;
&lt;td&gt;A plain title you can change later&lt;/td&gt;
&lt;td&gt;Tells the team what the post is about&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Question it answers&lt;/td&gt;
&lt;td&gt;One sentence in the reader&#39;s words&lt;/td&gt;
&lt;td&gt;Keeps the post focused on one job&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Author&lt;/td&gt;
&lt;td&gt;One name, never &amp;quot;the team&amp;quot;&lt;/td&gt;
&lt;td&gt;Someone owns the deadline&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Status&lt;/td&gt;
&lt;td&gt;Idea, planned, drafting, editing or published&lt;/td&gt;
&lt;td&gt;Shows where work is stuck&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Refresh due&lt;/td&gt;
&lt;td&gt;The season you will check it again&lt;/td&gt;
&lt;td&gt;Keeps old posts from going stale&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The question column does the most work. A post with a clear question is quicker to write and easier to edit, which is the core idea of &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/seo-writing-guide/&quot;&gt;our guide to SEO writing&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;pick-a-pace-you-can-hold&quot;&gt;Pick a pace you can hold&lt;/h2&gt;
&lt;p&gt;Start slower than you think you need to. One good post a fortnight, kept up for a year, gives you a library of useful pages. Weekly posts that stop in the third month give you a few orphans and a guilty feeling.&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;A pace that lasts&lt;/p&gt;
&lt;p&gt;One new post every second week. The weeks between are for editing, refreshing an old post and planning the next one. The calendar always has slack, so one late draft does not break it.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;column&quot;&gt;
&lt;p class=&quot;column-title&quot;&gt;A pace that breaks&lt;/p&gt;
&lt;p&gt;A new post every week with no slack. Editing gets squeezed, old posts never get touched, and the first holiday or sick day pushes every date back.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;aside class=&quot;callout callout-tip&quot;&gt;
&lt;p&gt;Put the refresh slots in the content calendar first, then fill the new-post slots around them. Time for old posts is the first thing a busy team drops.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;fill-the-calendar-from-real-questions&quot;&gt;Fill the calendar from real questions&lt;/h2&gt;
&lt;p&gt;Do not brainstorm titles. Collect questions. Good sources are close at hand:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sales and support.&lt;/strong&gt; The questions customers ask before they buy and after they start.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The search bar.&lt;/strong&gt; Type your main topic and read the suggestions and the questions on the results page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Your own posts.&lt;/strong&gt; Readers who finish one post often need the next step. That step is a post.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Write each question into the calendar as it comes, then pick the best ones when you plan the month. Before a post starts, turn its row into a short brief. Our members can use &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/content-brief-template/&quot;&gt;the content brief template we use&lt;/a&gt; for that.&lt;/p&gt;
&lt;h2 id=&quot;run-the-calendar-in-one-short-meeting&quot;&gt;Run the calendar in one short meeting&lt;/h2&gt;
&lt;p&gt;The calendar needs a rhythm, not a project manager. We use one fifteen-minute meeting a week:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Look at this week&#39;s row. Is the post on track? If not, move it now and say so.&lt;/li&gt;
&lt;li&gt;Look at next week&#39;s row. Does the author have what they need?&lt;/li&gt;
&lt;li&gt;Look at the refresh slot. Which old post gets attention this time?&lt;/li&gt;
&lt;li&gt;Add any new questions to the bottom of the list.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That is the whole meeting. Anything bigger goes to a separate conversation.&lt;/p&gt;
&lt;details open&gt;
&lt;summary&gt;What if a post is late?&lt;/summary&gt;
&lt;ul&gt;
&lt;li&gt;Move it to the next free slot and tell the team in the meeting.&lt;/li&gt;
&lt;li&gt;Never squeeze editing to keep a date. A late, edited post beats an on-time, rough one.&lt;/li&gt;
&lt;li&gt;If the same post slips twice, the question may be too big. Split it into two posts.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;h2 id=&quot;leave-room-for-editing-and-refreshing&quot;&gt;Leave room for editing and refreshing&lt;/h2&gt;
&lt;p&gt;Every new post needs an edit before it goes live. Budget about half the writing time for it. We run each draft through &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/editing-checklist/&quot;&gt;the checklist our editors use&lt;/a&gt;, and that step belongs in the calendar as a date of its own, not as a hope.&lt;/p&gt;
&lt;p&gt;Old posts need time too. Our benchmark shows that in 2026, 38% of the blogs had not updated a single post in twelve months. Yet posts updated within the year earned, in 2026, 1.6 times the search clicks of untouched ones at the median. A refresh slot every second week is a cheap way to collect that gain.&lt;/p&gt;
&lt;h2 id=&quot;check-what-the-calendar-produced&quot;&gt;Check what the calendar produced&lt;/h2&gt;
&lt;p&gt;At the end of each quarter, look back. Which posts brought readers, sign-ups or sales? Which questions led nowhere? Move more of next quarter&#39;s slots toward what worked. Our post on &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/content-roi/&quot;&gt;measuring the return on content&lt;/a&gt; shows a simple way to do this without a data team.&lt;/p&gt;
&lt;h2 id=&quot;use-our-free-template&quot;&gt;Use our free template&lt;/h2&gt;
&lt;p&gt;We keep our own content calendar in a plain spreadsheet. You can download the same template and open it in any spreadsheet app. It has the six columns above and a few example rows to show the level of detail that works.&lt;/p&gt;
&lt;p class=&quot;file&quot;&gt;&lt;a href=&quot;calendar-template.csv&quot; download&gt;The Larkspur planning sheet, as a spreadsheet file&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For a wider view of editorial planning, the &lt;a href=&quot;https://contentmarketinginstitute.com/&quot;&gt;Content Marketing Institute&#39;s planning resources&lt;/a&gt; cover calendars for larger teams.&lt;/p&gt;
</content:encoded>
    </item>
    <item>
      <title>Fact check: word count is not a ranking factor</title>
      <link>https://serpdad.com/khalid/templates/classic/fact-check-word-count/</link>
      <guid isPermaLink="true">https://serpdad.com/khalid/templates/classic/fact-check-word-count/</guid>
      <pubDate>Tue, 11 Aug 2026 00:00:00 +0000</pubDate>
      <dc:creator>Priya Raman</dc:creator>
      <description>Does word count decide rankings? We checked the claim that Google ranks longer posts higher. Our verdict is false, and here is the evidence.</description>
      <content:encoded>&lt;p&gt;No. Google does not rank a post higher because it is long. Its own guide to helpful content says plainly that it has no preferred word count. Long posts often do rank well, but that is because they tend to answer more questions and earn more links, not because of the length itself.&lt;/p&gt;
&lt;aside class=&quot;callout callout-summary&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The claim:&lt;/strong&gt; &amp;quot;Google ranks longer posts higher.&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Our verdict: False.&lt;/strong&gt; Google says it has no preferred word count.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Why it feels true:&lt;/strong&gt; long pages often carry other strengths that do help, such as wide coverage and links from other sites.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What to do:&lt;/strong&gt; write as long as the answer needs, then stop.&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;#the-claim-we-checked&quot;&gt;The claim we checked&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#what-google-says-about-word-count&quot;&gt;What Google says about word count&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#the-claim-against-the-evidence&quot;&gt;The claim against the evidence&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#why-long-posts-often-rank-anyway&quot;&gt;Why long posts often rank anyway&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#what-this-means-for-your-brief&quot;&gt;What this means for your brief&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toc-h2&quot;&gt;&lt;a href=&quot;#how-to-judge-the-right-length&quot;&gt;How to judge the right length&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;the-claim-we-checked&quot;&gt;The claim we checked&lt;/h2&gt;
&lt;p&gt;The claim turns up in briefs, agency pitches and tool reports. It usually reads like a rule: write a long post or do not bother. Some content tools score a draft by its word count against the pages that rank. Writers then pad a clear answer to hit the target.&lt;/p&gt;
&lt;p&gt;We checked the claim in the form people make it: &amp;quot;Google ranks longer posts higher.&amp;quot; That is a claim about cause. It says length itself moves a page up. To be true, a page would have to gain from the extra words alone, with nothing else changed.&lt;/p&gt;
&lt;h2 id=&quot;what-google-says-about-word-count&quot;&gt;What Google says about word count&lt;/h2&gt;
&lt;p&gt;Google publishes a guide to &lt;a href=&quot;https://developers.google.com/search/docs/fundamentals/creating-helpful-content&quot;&gt;creating helpful, reliable, people-first content&lt;/a&gt;. It lists questions to ask of your own pages. One of them asks whether you write to a set word count because you heard Google prefers one. Right beside the question, Google answers that it does not.&lt;/p&gt;
&lt;p&gt;The guide puts that question in a list of warning signs. They are the habits of content made for search engines first and people second. So Google does more than say length is neutral. It treats writing to a target length as a sign that the writer has lost sight of the reader.&lt;/p&gt;
&lt;aside class=&quot;callout callout-note&quot;&gt;
&lt;p&gt;A fact check rates a claim, not a person. We rate the claim false because the source that would know, Google itself, says the opposite in its public guidance.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;the-claim-against-the-evidence&quot;&gt;The claim against the evidence&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What people say&lt;/th&gt;
&lt;th&gt;What the evidence shows&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Google rewards long posts&lt;/td&gt;
&lt;td&gt;Google&#39;s own guide says it has no preferred length&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The top results are long, so length must help&lt;/td&gt;
&lt;td&gt;The top results also cover more questions and earn more links&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A longer post looks more expert&lt;/td&gt;
&lt;td&gt;Expertise shows in detail, sources and a named author, not in bulk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Adding words to an old post lifts it&lt;/td&gt;
&lt;td&gt;Padding pushes the answer down and makes it harder to find&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The third row matters most for small teams. Google&#39;s idea of &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/glossary/e-e-a-t/&quot;&gt;E-E-A-T&lt;/a&gt; (experience, expertise, authority and trust) is about who wrote a page and how they know. A real name, a first-hand example and a linked source show it. Extra words do not.&lt;/p&gt;
&lt;h2 id=&quot;why-long-posts-often-rank-anyway&quot;&gt;Why long posts often rank anyway&lt;/h2&gt;
&lt;p&gt;Sort the results for a broad query by length and long pages often sit near the top. The pattern is real. It just does not show cause. Three things tend to travel with length, and each of them can help a page on its own.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Wider coverage.&lt;/strong&gt; A broad search hides many smaller questions. A guide that answers each of them matches more of what searchers want. The length is a side effect of the coverage.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;More links.&lt;/strong&gt; Thorough guides are the pages other sites cite, so they earn more &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/glossary/backlink/&quot;&gt;backlinks&lt;/a&gt;. Links help a page be found and trusted. The words do not earn them; the usefulness does.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;More care.&lt;/strong&gt; Long guides are often a team&#39;s flagship pages. They get updated, linked from other posts and promoted. A short page with the same care would get much of the same lift.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Take those three away and the length alone has nothing left to give. A short page that answers a narrow question well will beat a long page that buries the same answer under a history lesson.&lt;/p&gt;
&lt;figure class=&quot;pullquote&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;When two things rise together, ask what else is rising with them before you credit either one.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;Priya Raman, research editor&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;what-this-means-for-your-brief&quot;&gt;What this means for your brief&lt;/h2&gt;
&lt;p&gt;Drop the target length from your briefs. Put a list of questions in its place. The post is done when it answers each of them clearly, once.&lt;/p&gt;
&lt;p&gt;Start from the &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/search-intent/&quot;&gt;goal behind the search&lt;/a&gt;. Someone who asks how long a meta description should be wants a number and a reason, then wants to leave. Our &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/meta-description/&quot;&gt;meta description guide&lt;/a&gt; answers in two lines and stays short on purpose. Someone who asks how to plan a year of content wants a method, and that post will run long because the method has many parts.&lt;/p&gt;
&lt;p&gt;Our &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/seo-writing-guide/&quot;&gt;full guide to writing posts that rank&lt;/a&gt; walks through the whole process, from the question to the final edit.&lt;/p&gt;
&lt;h2 id=&quot;how-to-judge-the-right-length&quot;&gt;How to judge the right length&lt;/h2&gt;
&lt;p&gt;You can find the right length without counting a single word.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Read the results page.&lt;/strong&gt; If the pages that rank all answer in a few lines, a long post will not beat them.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;List the questions.&lt;/strong&gt; Write down each question a reader will have, in the order they will have it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Answer each one once.&lt;/strong&gt; No section should say again what another already said.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cut what does not serve.&lt;/strong&gt; Our &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/editing-checklist/&quot;&gt;checklist for the second draft&lt;/a&gt; shows where padding hides.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Read it on a phone.&lt;/strong&gt; A buried answer is easy to spot on a small screen.&lt;/li&gt;
&lt;/ol&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://serpdad.com/khalid/templates/classic/structured-data/&quot;&gt;structured data for a fact check&lt;/a&gt;, known as ClaimReview: a short block of code that names the claim, our rating and who rated it. Fact-check tools can read the verdict without guessing. Khalid writes it from the post&#39;s settings, so the page and the code always agree.&lt;/p&gt;
&lt;details open&gt;
&lt;summary&gt;How we check claims&lt;/summary&gt;
&lt;p&gt;Every fact check follows our &lt;a href=&quot;https://serpdad.com/khalid/templates/classic/editorial-policy/&quot;&gt;editorial policy&lt;/a&gt;. We write the claim the way people make it, then look for the source best placed to know: the search engine&#39;s own documents, a standard, or a test we can repeat. We rate the claim on a five-point scale, from one for false up to five for true, and we give the verdict in words as well. A second editor reviews the evidence before we publish. If new evidence changes the verdict, we update the page and add a dated note that says what changed.&lt;/p&gt;
&lt;/details&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 next fact check&lt;/button&gt;&lt;/p&gt;
&lt;/form&gt;
</content:encoded>
    </item>
  </channel>
</rss>
