{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://serpdad.com/blog/#organization",
      "name": "SerpDad",
      "url": "https://serpdad.com/blog/",
      "email": "contact@serpdad.com"
    },
    {
      "@type": "WebSite",
      "@id": "https://serpdad.com/blog/#website",
      "name": "SerpDad Blog",
      "url": "https://serpdad.com/blog/",
      "inLanguage": "en",
      "publisher": {
        "@id": "https://serpdad.com/blog/#organization"
      },
      "description": "SEO and AI search notes from the SerpDad team",
      "potentialAction": {
        "@type": "SearchAction",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://serpdad.com/blog/search/?q={search_term_string}"
        },
        "query-input": "required name=search_term_string"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/blog-speed-test/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Khalid",
          "item": "https://serpdad.com/blog/category/khalid/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Blog speed test: how fast is this Khalid blog?",
          "item": "https://serpdad.com/blog/blog-speed-test/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://serpdad.com/blog/blog-speed-test/#webpage",
      "name": "Blog speed test: how fast is this Khalid blog?",
      "url": "https://serpdad.com/blog/blog-speed-test/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/blog-speed-test/#breadcrumb"
      },
      "description": "Our own blog speed test of this Khalid blog on 3 November 2026, with server times, public load times and page weights. Download the raw numbers.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/media/d3360748f1d7b431/1200.png",
        "width": 1200,
        "height": 675,
        "caption": "A blog speed test chart with short bars for server time and longer bars for page weight"
      },
      "datePublished": "2026-11-03T00:00:00Z"
    },
    {
      "@type": "BlogPosting",
      "@id": "https://serpdad.com/blog/blog-speed-test/#article",
      "headline": "Blog speed test: how fast is this Khalid blog?",
      "mainEntityOfPage": {
        "@id": "https://serpdad.com/blog/blog-speed-test/#webpage"
      },
      "publisher": {
        "@id": "https://serpdad.com/blog/#organization"
      },
      "inLanguage": "en",
      "description": "Our own blog speed test of this Khalid blog on 3 November 2026, with server times, public load times and page weights. Download the raw numbers.",
      "image": [
        "https://serpdad.com/blog/media/d3360748f1d7b431/1200.png",
        "https://serpdad.com/blog/blog-speed-test/cover.png"
      ],
      "datePublished": "2026-11-03T00:00:00Z",
      "dateModified": "2026-11-03T00:00:00Z",
      "author": {
        "@id": "https://serpdad.com/blog/authors/asif/#person"
      }
    },
    {
      "@type": "Person",
      "@id": "https://serpdad.com/blog/authors/asif/#person",
      "name": "Khondokar MD Asiful Islam",
      "url": "https://serpdad.com/blog/authors/asif/",
      "jobTitle": "Co-founder of SerpDad",
      "hasCredential": "Years building SEO for B2B SaaS companies, organiser of The SEO Event, writer of the Missing Intent newsletter",
      "description": "Most people call him Asif. He co-founded SerpDad, and before that he spent years building SEO for B2B SaaS companies: hiring and training the team, paying the vendors, building the process, and owning the number at the end of the quarter. He organises The SEO Event and writes Missing Intent, an SEO newsletter built on research and testing. For its first issue he read all 14,062 fields in the Google Content Warehouse leak and published the whole reading, free and searchable. He starts from primary sources, tests on live sites, and says so when something is not proven yet. You can find him on [LinkedIn](https://www.linkedin.com/in/kasif25/) and [X](https://x.com/KmAsiff).",
      "sameAs": [
        "https://www.linkedin.com/in/kasif25/",
        "https://x.com/KmAsiff",
        "https://missingintent.com/about",
        "https://theseoevent.com/",
        "https://serpdad.com/about/"
      ]
    },
    {
      "@type": "Dataset",
      "name": "SerpDad Blog speed test, 3 November 2026",
      "description": "Server response times, public load times and page weights for seven pages of serpdad.com/blog, measured by the SerpDad team on 3 November 2026. Server times are medians of 20 requests made on the server itself; public times are medians of 10 requests over the internet; page weights come from Khalid 1.3.1 audit.",
      "url": "https://serpdad.com/blog/blog-speed-test/",
      "keywords": [
        "blog speed test",
        "page weight",
        "server response time",
        "Khalid"
      ],
      "creator": {
        "@type": "Organization",
        "name": "SerpDad",
        "url": "https://serpdad.com/"
      },
      "license": "https://creativecommons.org/licenses/by/4.0/",
      "isAccessibleForFree": true,
      "temporalCoverage": "2026-11-03",
      "variableMeasured": [
        "page",
        "server_ms_median",
        "public_ms_median",
        "html_kb",
        "total_kb"
      ],
      "distribution": {
        "@type": "DataDownload",
        "encodingFormat": "text/csv",
        "contentUrl": "https://serpdad.com/blog/blog-speed-test/blog-speed-2026-11-03.csv"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/build-topical-map/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Topical authority",
          "item": "https://serpdad.com/blog/category/topical-authority/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "How to build a topical map for your blog, step by step",
          "item": "https://serpdad.com/blog/build-topical-map/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://serpdad.com/blog/build-topical-map/#webpage",
      "name": "How to build a topical map for your blog, step by step",
      "url": "https://serpdad.com/blog/build-topical-map/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/build-topical-map/#breadcrumb"
      },
      "description": "Build a topical map in six steps, from your blog's purpose to the order you publish in, with this blog's own topical map as a worked example.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/media/8b18f2a1ed89a314/1200.png",
        "width": 1200,
        "height": 675,
        "caption": "Six numbered steps to build a topical map, from one core box out to linked groups of pages"
      },
      "datePublished": "2026-11-03T00:00:00Z"
    },
    {
      "@type": "BlogPosting",
      "@id": "https://serpdad.com/blog/build-topical-map/#article",
      "headline": "How to build a topical map for your blog, step by step",
      "mainEntityOfPage": {
        "@id": "https://serpdad.com/blog/build-topical-map/#webpage"
      },
      "publisher": {
        "@id": "https://serpdad.com/blog/#organization"
      },
      "inLanguage": "en",
      "description": "Build a topical map in six steps, from your blog's purpose to the order you publish in, with this blog's own topical map as a worked example.",
      "image": [
        "https://serpdad.com/blog/media/8b18f2a1ed89a314/1200.png",
        "https://serpdad.com/blog/build-topical-map/cover.png"
      ],
      "datePublished": "2026-11-03T00:00:00Z",
      "dateModified": "2026-11-03T00:00:00Z",
      "author": {
        "@id": "https://serpdad.com/blog/authors/asif/#person"
      }
    },
    {
      "@type": "HowTo",
      "@id": "https://serpdad.com/blog/build-topical-map/#howto-1",
      "name": "Build a topical map",
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Name your blog's purpose",
          "text": "First, write one sentence on what your blog sells, does or wants readers to do. Koray calls this the source context, and it decides everything after it."
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "List the core topics",
          "text": "Next, list the questions a reader asks right before they would use what you offer. Together, these pages form the core section of the map."
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "List the outer topics",
          "text": "List the wider questions a reader meets on the way to the core: definitions, background and side questions. Likewise, these pages form the outer section."
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Group the pages",
          "text": "Then put pages that answer related questions into one group. However, two questions with the same answer share one page, so merge them."
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Pick each group's main page",
          "text": "After that, choose the page that answers the group's broadest question. The other pages in the group link to it, and it links back to each of them."
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Decide the order you publish in",
          "text": "Plan your publishing order: which group goes first and how fast you publish. The next section explains how Koray orders his."
        }
      ],
      "totalTime": "PT3H"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/get-quoted-ai-answers/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "AI search",
          "item": "https://serpdad.com/blog/category/ai-search/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "How to get your blog quoted in AI answers",
          "item": "https://serpdad.com/blog/get-quoted-ai-answers/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://serpdad.com/blog/get-quoted-ai-answers/#webpage",
      "name": "How to get your blog quoted in AI answers",
      "url": "https://serpdad.com/blog/get-quoted-ai-answers/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/get-quoted-ai-answers/#breadcrumb"
      },
      "description": "AI answers quote sentences, not pages. Eight moves from Steve Toth's research that get your blog quoted in ChatGPT, Gemini, Perplexity and Claude.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/media/4e0298f178ba592d/1200.png",
        "width": 1200,
        "height": 675,
        "caption": "A blog post with one sentence lifted out into an AI answers bubble"
      },
      "datePublished": "2026-11-03T00:00:00Z"
    },
    {
      "@type": "BlogPosting",
      "@id": "https://serpdad.com/blog/get-quoted-ai-answers/#article",
      "headline": "How to get your blog quoted in AI answers",
      "mainEntityOfPage": {
        "@id": "https://serpdad.com/blog/get-quoted-ai-answers/#webpage"
      },
      "publisher": {
        "@id": "https://serpdad.com/blog/#organization"
      },
      "inLanguage": "en",
      "description": "AI answers quote sentences, not pages. Eight moves from Steve Toth's research that get your blog quoted in ChatGPT, Gemini, Perplexity and Claude.",
      "image": [
        "https://serpdad.com/blog/media/4e0298f178ba592d/1200.png",
        "https://serpdad.com/blog/get-quoted-ai-answers/cover.png"
      ],
      "datePublished": "2026-11-03T00:00:00Z",
      "dateModified": "2026-11-03T00:00:00Z",
      "author": {
        "@id": "https://serpdad.com/blog/authors/asif/#person"
      }
    },
    {
      "@type": "FAQPage",
      "@id": "https://serpdad.com/blog/get-quoted-ai-answers/#faq",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Do I need an llms.txt file to get quoted?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "No. An [[glossary:llms-txt|llms.txt]] file is a short guide to your site for AI tools. Steve Toth ranks it as a low priority, because no AI search tool says it reads one. Clear pages with plain answers matter far more. This blog keeps one because it costs nothing."
          }
        },
        {
          "@type": "Question",
          "name": "How can I tell whether AI tools send me visitors?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Look for the tags AI tools add to their links. ChatGPT adds utm_source=chatgpt.com and Gemini adds utm_source=gemini, as Steve Toth's recordings show. Many analytics tools file AI visits as direct traffic, so check those tags in your page reports."
          }
        },
        {
          "@type": "Question",
          "name": "Is an AI bot reading my page the same as being quoted?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "No. A visit from an AI bot only means the bot read the page. Steve Toth found that AI tools never quoted most of the pages they read. So count the visitors an AI tool sends you, not the times its bot calls."
          }
        },
        {
          "@type": "Question",
          "name": "Does structured data get my posts quoted?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Not on its own. Structured data tells search engines who wrote a post and what it covers, which helps smaller sites get recognised. The quote itself still comes from a plain sentence on the page, so write that sentence first."
          }
        }
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/khalid-vs-wordpress/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Khalid",
          "item": "https://serpdad.com/blog/category/khalid/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Khalid vs WordPress for a blog",
          "item": "https://serpdad.com/blog/khalid-vs-wordpress/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://serpdad.com/blog/khalid-vs-wordpress/#webpage",
      "name": "Khalid vs WordPress for a blog",
      "url": "https://serpdad.com/blog/khalid-vs-wordpress/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/khalid-vs-wordpress/#breadcrumb"
      },
      "description": "Khalid vs WordPress for a blog, compared fairly on speed, security, SEO, cost and where WordPress is still the better choice. Prices checked 2 November 2026.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/media/b012199e3aa6d7f3/1200.png",
        "width": 1200,
        "height": 675,
        "caption": "Khalid vs WordPress, one small program on the left and a stack of plugins on the right"
      },
      "datePublished": "2026-11-03T00:00:00Z"
    },
    {
      "@type": "BlogPosting",
      "@id": "https://serpdad.com/blog/khalid-vs-wordpress/#article",
      "headline": "Khalid vs WordPress for a blog",
      "mainEntityOfPage": {
        "@id": "https://serpdad.com/blog/khalid-vs-wordpress/#webpage"
      },
      "publisher": {
        "@id": "https://serpdad.com/blog/#organization"
      },
      "inLanguage": "en",
      "description": "Khalid vs WordPress for a blog, compared fairly on speed, security, SEO, cost and where WordPress is still the better choice. Prices checked 2 November 2026.",
      "image": [
        "https://serpdad.com/blog/media/b012199e3aa6d7f3/1200.png",
        "https://serpdad.com/blog/khalid-vs-wordpress/cover.png"
      ],
      "datePublished": "2026-11-03T00:00:00Z",
      "dateModified": "2026-11-03T00:00:00Z",
      "author": {
        "@id": "https://serpdad.com/blog/authors/asif/#person"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/topical-map-explained/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Topical authority",
          "item": "https://serpdad.com/blog/category/topical-authority/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "What a topical map is, and why a small blog needs one",
          "item": "https://serpdad.com/blog/topical-map-explained/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://serpdad.com/blog/topical-map-explained/#webpage",
      "name": "What a topical map is, and why a small blog needs one",
      "url": "https://serpdad.com/blog/topical-map-explained/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/topical-map-explained/#breadcrumb"
      },
      "description": "A topical map plans every page a blog needs to cover one subject and how those pages link. What it is, its two sections, and why it matters.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/media/806dbfd37263dcb4/1200.png",
        "width": 1200,
        "height": 675,
        "caption": "A topical map with one core circle in the middle and outer topics linked around it"
      },
      "datePublished": "2026-11-03T00:00:00Z"
    },
    {
      "@type": "BlogPosting",
      "@id": "https://serpdad.com/blog/topical-map-explained/#article",
      "headline": "What a topical map is, and why a small blog needs one",
      "mainEntityOfPage": {
        "@id": "https://serpdad.com/blog/topical-map-explained/#webpage"
      },
      "publisher": {
        "@id": "https://serpdad.com/blog/#organization"
      },
      "inLanguage": "en",
      "description": "A topical map plans every page a blog needs to cover one subject and how those pages link. What it is, its two sections, and why it matters.",
      "image": [
        "https://serpdad.com/blog/media/806dbfd37263dcb4/1200.png",
        "https://serpdad.com/blog/topical-map-explained/cover.png"
      ],
      "datePublished": "2026-11-03T00:00:00Z",
      "dateModified": "2026-11-03T00:00:00Z",
      "author": {
        "@id": "https://serpdad.com/blog/authors/asif/#person"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/topical-map-internal-links/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Topical authority",
          "item": "https://serpdad.com/blog/category/topical-authority/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "How the internal links in a topical map should work",
          "item": "https://serpdad.com/blog/topical-map-internal-links/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://serpdad.com/blog/topical-map-internal-links/#webpage",
      "name": "How the internal links in a topical map should work",
      "url": "https://serpdad.com/blog/topical-map-internal-links/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/topical-map-internal-links/#breadcrumb"
      },
      "description": "How the internal links in a topical map should point, what their words should say, and when to add them, from Koray Tugberk Gubur's own case studies.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/media/dca24a055e3ac89f/1200.png",
        "width": 1200,
        "height": 675,
        "caption": "Internal links drawn as arrows between the pages of a topical map, outer pages pointing to the core"
      },
      "datePublished": "2026-11-03T00:00:00Z"
    },
    {
      "@type": "BlogPosting",
      "@id": "https://serpdad.com/blog/topical-map-internal-links/#article",
      "headline": "How the internal links in a topical map should work",
      "mainEntityOfPage": {
        "@id": "https://serpdad.com/blog/topical-map-internal-links/#webpage"
      },
      "publisher": {
        "@id": "https://serpdad.com/blog/#organization"
      },
      "inLanguage": "en",
      "description": "How the internal links in a topical map should point, what their words should say, and when to add them, from Koray Tugberk Gubur's own case studies.",
      "image": [
        "https://serpdad.com/blog/media/dca24a055e3ac89f/1200.png",
        "https://serpdad.com/blog/topical-map-internal-links/cover.png"
      ],
      "datePublished": "2026-11-03T00:00:00Z",
      "dateModified": "2026-11-03T00:00:00Z",
      "author": {
        "@id": "https://serpdad.com/blog/authors/asif/#person"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/write-answer-capsule/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "AI search",
          "item": "https://serpdad.com/blog/category/ai-search/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "How to write an answer capsule",
          "item": "https://serpdad.com/blog/write-answer-capsule/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://serpdad.com/blog/write-answer-capsule/#webpage",
      "name": "How to write an answer capsule",
      "url": "https://serpdad.com/blog/write-answer-capsule/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/write-answer-capsule/#breadcrumb"
      },
      "description": "An answer capsule is a forty to sixty word answer under a question heading that AI tools can quote whole. Five steps to write one, with an example.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/media/6c0328ed92c68b16/1200.png",
        "width": 1200,
        "height": 675,
        "caption": "A question heading with a short answer capsule card placed right under it"
      },
      "datePublished": "2026-11-03T00:00:00Z"
    },
    {
      "@type": "BlogPosting",
      "@id": "https://serpdad.com/blog/write-answer-capsule/#article",
      "headline": "How to write an answer capsule",
      "mainEntityOfPage": {
        "@id": "https://serpdad.com/blog/write-answer-capsule/#webpage"
      },
      "publisher": {
        "@id": "https://serpdad.com/blog/#organization"
      },
      "inLanguage": "en",
      "description": "An answer capsule is a forty to sixty word answer under a question heading that AI tools can quote whole. Five steps to write one, with an example.",
      "image": [
        "https://serpdad.com/blog/media/6c0328ed92c68b16/1200.png",
        "https://serpdad.com/blog/write-answer-capsule/cover.png"
      ],
      "datePublished": "2026-11-03T00:00:00Z",
      "dateModified": "2026-11-03T00:00:00Z",
      "author": {
        "@id": "https://serpdad.com/blog/authors/asif/#person"
      }
    },
    {
      "@type": "HowTo",
      "@id": "https://serpdad.com/blog/write-answer-capsule/#howto-1",
      "name": "Write an answer capsule",
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Turn the heading into the reader's question",
          "text": "Rewrite the heading in the words a reader would type or say. \"How long should a blog post be?\" works better than \"Post length\". Question headings tell the reader and the AI tool exactly what the next lines answer."
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Answer in the first sentence",
          "text": "Put the answer itself in the first sentence, with no warm-up. If the honest answer depends on something, name that thing in the same sentence."
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Add the one fact that matters most",
          "text": "Follow with the single fact or condition a reader needs to act on the answer. Keep the reasons, examples and exceptions for the paragraphs below."
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Cut it to forty to sixty words",
          "text": "Count the words and trim until the answer capsule sits inside that range. Drop hedge words, and keep links out of the first sentence."
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Read it on its own",
          "text": "Cover the heading and the rest of the post, then read the capsule alone. If it still answers the question, an AI tool can quote it. If it leans on \"this\" or \"the above\", rewrite those words."
        }
      ],
      "totalTime": "PT10M"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/write-post-khalid/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Khalid",
          "item": "https://serpdad.com/blog/category/khalid/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "How to write a post in the Khalid editor, start to finish",
          "item": "https://serpdad.com/blog/write-post-khalid/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://serpdad.com/blog/write-post-khalid/#webpage",
      "name": "How to write a post in the Khalid editor, start to finish",
      "url": "https://serpdad.com/blog/write-post-khalid/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/write-post-khalid/#breadcrumb"
      },
      "description": "How to write a post in the Khalid editor, from passkey sign-in to the checks that stop a weak post, the Google preview and publishing, with a short video.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/media/ed2e942e8188cd7b/1280.png",
        "width": 1280,
        "height": 720,
        "caption": "The Khalid editor, used to write a post in Khalid, with a check that stops publishing until the post links to another post"
      },
      "datePublished": "2026-11-03T00:00:00Z"
    },
    {
      "@type": "BlogPosting",
      "@id": "https://serpdad.com/blog/write-post-khalid/#article",
      "headline": "How to write a post in the Khalid editor, start to finish",
      "mainEntityOfPage": {
        "@id": "https://serpdad.com/blog/write-post-khalid/#webpage"
      },
      "publisher": {
        "@id": "https://serpdad.com/blog/#organization"
      },
      "inLanguage": "en",
      "description": "How to write a post in the Khalid editor, from passkey sign-in to the checks that stop a weak post, the Google preview and publishing, with a short video.",
      "image": [
        "https://serpdad.com/blog/media/ed2e942e8188cd7b/1280.png",
        "https://serpdad.com/blog/write-post-khalid/cover.png",
        "https://serpdad.com/blog/write-post-khalid/passkey.png",
        "https://serpdad.com/blog/write-post-khalid/blocked.png",
        "https://serpdad.com/blog/write-post-khalid/published.png",
        "https://serpdad.com/blog/write-post-khalid/google-preview.png"
      ],
      "datePublished": "2026-11-03T00:00:00Z",
      "dateModified": "2026-11-03T00:00:00Z",
      "author": {
        "@id": "https://serpdad.com/blog/authors/asif/#person"
      }
    },
    {
      "@type": "VideoObject",
      "@id": "https://serpdad.com/blog/write-post-khalid/#video-1",
      "name": "Writing a post in Khalid, start to finish",
      "description": "A silent screen recording on a local test site: signing in with a passkey, starting a post, a check that stops publishing, adding an internal link, and publishing.",
      "thumbnailUrl": "https://serpdad.com/blog/write-post-khalid/poster.jpg",
      "uploadDate": "2026-11-03T00:00:00Z",
      "duration": "PT32S",
      "contentUrl": "https://serpdad.com/blog/write-post-khalid/walkthrough.mp4"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/about/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "About the SerpDad Blog",
          "item": "https://serpdad.com/blog/about/"
        }
      ]
    },
    {
      "@type": "AboutPage",
      "@id": "https://serpdad.com/blog/about/#webpage",
      "name": "About the SerpDad Blog",
      "url": "https://serpdad.com/blog/about/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/about/#breadcrumb"
      },
      "description": "Who writes the SerpDad Blog, which sources we trust for SEO advice, and why this blog also serves as the live demo of Khalid.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/2be826c9241329c5.png",
        "width": 1200,
        "height": 630,
        "caption": "About the SerpDad Blog"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/contact/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Contact the SerpDad Blog",
          "item": "https://serpdad.com/blog/contact/"
        }
      ]
    },
    {
      "@type": "ContactPage",
      "@id": "https://serpdad.com/blog/contact/#webpage",
      "name": "Contact the SerpDad Blog",
      "url": "https://serpdad.com/blog/contact/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/contact/#breadcrumb"
      },
      "description": "Write to the SerpDad Blog team about a post, a correction or Khalid. Your note reaches the founder, who reads every one.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/3ae27d92d096ea5b.png",
        "width": 1200,
        "height": 630,
        "caption": "Contact the SerpDad Blog"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/how-this-blog-works/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "How this blog works",
          "item": "https://serpdad.com/blog/how-this-blog-works/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://serpdad.com/blog/how-this-blog-works/#webpage",
      "name": "How this blog works",
      "url": "https://serpdad.com/blog/how-this-blog-works/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/how-this-blog-works/#breadcrumb"
      },
      "description": "Every Khalid feature this blog uses, in plain words, with a link to the live page that shows it. Khalid is the open-source blog engine behind it.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/fbed3fbcf4f538d5.png",
        "width": 1200,
        "height": 630,
        "caption": "How this blog works"
      }
    },
    {
      "@type": "Product",
      "@id": "https://serpdad.com/blog/how-this-blog-works/#product-1",
      "name": "Khalid",
      "description": "The fast, secure WordPress alternative for blogs: one small program, SEO built in, and a linter that stops weak posts before they go live. Free and open source.",
      "offers": {
        "@type": "Offer",
        "price": "0.00",
        "priceCurrency": "USD",
        "availability": "https://schema.org/InStock",
        "url": "https://github.com/thebigasif/khalid"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/ai/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "About this site for readers and AI",
          "item": "https://serpdad.com/blog/ai/"
        }
      ]
    },
    {
      "@type": "AboutPage",
      "@id": "https://serpdad.com/blog/ai/#webpage",
      "name": "About this site for readers and AI",
      "url": "https://serpdad.com/blog/ai/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/ai/#breadcrumb"
      },
      "description": "Who runs SerpDad, what it covers, how to cite it and how to reach the team.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/9542dd6ba57d4677.png",
        "width": 1200,
        "height": 630,
        "caption": "About this site for readers and AI"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/glossary/ai-info-page/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "AI info page",
          "item": "https://serpdad.com/blog/glossary/ai-info-page/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://serpdad.com/blog/glossary/ai-info-page/#webpage",
      "name": "AI info page",
      "url": "https://serpdad.com/blog/glossary/ai-info-page/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/glossary/ai-info-page/#breadcrumb"
      },
      "description": "An AI info page is a page written for AI assistants and the people who build them.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/58e11a50bb0da352.png",
        "width": 1200,
        "height": 630,
        "caption": "AI info page"
      }
    },
    {
      "@type": "DefinedTerm",
      "@id": "https://serpdad.com/blog/glossary/ai-info-page/#term",
      "name": "AI info page",
      "url": "https://serpdad.com/blog/glossary/ai-info-page/",
      "inDefinedTermSet": {
        "@id": "https://serpdad.com/blog/glossary/#termset"
      },
      "description": "An AI info page is a page written for AI assistants and the people who build them."
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/glossary/answer-capsule/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Answer capsule",
          "item": "https://serpdad.com/blog/glossary/answer-capsule/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://serpdad.com/blog/glossary/answer-capsule/#webpage",
      "name": "Answer capsule",
      "url": "https://serpdad.com/blog/glossary/answer-capsule/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/glossary/answer-capsule/#breadcrumb"
      },
      "description": "An answer capsule is a short, complete answer placed right under a question heading, before any detail.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/0086c89431033186.png",
        "width": 1200,
        "height": 630,
        "caption": "Answer capsule"
      }
    },
    {
      "@type": "DefinedTerm",
      "@id": "https://serpdad.com/blog/glossary/answer-capsule/#term",
      "name": "Answer capsule",
      "url": "https://serpdad.com/blog/glossary/answer-capsule/",
      "inDefinedTermSet": {
        "@id": "https://serpdad.com/blog/glossary/#termset"
      },
      "description": "An answer capsule is a short, complete answer placed right under a question heading, before any detail."
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/glossary/canonical-link/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Canonical link",
          "item": "https://serpdad.com/blog/glossary/canonical-link/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://serpdad.com/blog/glossary/canonical-link/#webpage",
      "name": "Canonical link",
      "url": "https://serpdad.com/blog/glossary/canonical-link/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/glossary/canonical-link/#breadcrumb"
      },
      "description": "A canonical link is a tag in a page's head that names the one address a search engine should treat as the real version of the page.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/7372b18d24bf5983.png",
        "width": 1200,
        "height": 630,
        "caption": "Canonical link"
      }
    },
    {
      "@type": "DefinedTerm",
      "@id": "https://serpdad.com/blog/glossary/canonical-link/#term",
      "name": "Canonical link",
      "url": "https://serpdad.com/blog/glossary/canonical-link/",
      "inDefinedTermSet": {
        "@id": "https://serpdad.com/blog/glossary/#termset"
      },
      "description": "A canonical link is a tag in a page's head that names the one address a search engine should treat as the real version of the page."
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/glossary/crawl-budget/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Crawl budget",
          "item": "https://serpdad.com/blog/glossary/crawl-budget/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://serpdad.com/blog/glossary/crawl-budget/#webpage",
      "name": "Crawl budget",
      "url": "https://serpdad.com/blog/glossary/crawl-budget/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/glossary/crawl-budget/#breadcrumb"
      },
      "description": "Crawl budget is how many pages of a site a search engine is willing and able to fetch in a given time. Small blogs rarely run out of it.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/0cbbc95f79fe99be.png",
        "width": 1200,
        "height": 630,
        "caption": "Crawl budget"
      }
    },
    {
      "@type": "DefinedTerm",
      "@id": "https://serpdad.com/blog/glossary/crawl-budget/#term",
      "name": "Crawl budget",
      "url": "https://serpdad.com/blog/glossary/crawl-budget/",
      "inDefinedTermSet": {
        "@id": "https://serpdad.com/blog/glossary/#termset"
      },
      "description": "Crawl budget is how many pages of a site a search engine is willing and able to fetch in a given time. Small blogs rarely run out of it."
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/glossary/internal-link/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Internal link",
          "item": "https://serpdad.com/blog/glossary/internal-link/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://serpdad.com/blog/glossary/internal-link/#webpage",
      "name": "Internal link",
      "url": "https://serpdad.com/blog/glossary/internal-link/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/glossary/internal-link/#breadcrumb"
      },
      "description": "An internal link is a link from one page of a site to another page of the same site.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/cb96bd8177724f8a.png",
        "width": 1200,
        "height": 630,
        "caption": "Internal link"
      }
    },
    {
      "@type": "DefinedTerm",
      "@id": "https://serpdad.com/blog/glossary/internal-link/#term",
      "name": "Internal link",
      "url": "https://serpdad.com/blog/glossary/internal-link/",
      "inDefinedTermSet": {
        "@id": "https://serpdad.com/blog/glossary/#termset"
      },
      "description": "An internal link is a link from one page of a site to another page of the same site."
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/glossary/llms-txt/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "llms.txt",
          "item": "https://serpdad.com/blog/glossary/llms-txt/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://serpdad.com/blog/glossary/llms-txt/#webpage",
      "name": "llms.txt",
      "url": "https://serpdad.com/blog/glossary/llms-txt/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/glossary/llms-txt/#breadcrumb"
      },
      "description": "llms.txt is a plain text file at a site's address, such as /llms.txt, that tells AI tools what the site is and which pages matter most.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/fb95bc04f402a364.png",
        "width": 1200,
        "height": 630,
        "caption": "llms.txt"
      }
    },
    {
      "@type": "DefinedTerm",
      "@id": "https://serpdad.com/blog/glossary/llms-txt/#term",
      "name": "llms.txt",
      "url": "https://serpdad.com/blog/glossary/llms-txt/",
      "inDefinedTermSet": {
        "@id": "https://serpdad.com/blog/glossary/#termset"
      },
      "description": "llms.txt is a plain text file at a site's address, such as /llms.txt, that tells AI tools what the site is and which pages matter most."
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/glossary/schema-markup/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Schema markup",
          "item": "https://serpdad.com/blog/glossary/schema-markup/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://serpdad.com/blog/glossary/schema-markup/#webpage",
      "name": "Schema markup",
      "url": "https://serpdad.com/blog/glossary/schema-markup/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/glossary/schema-markup/#breadcrumb"
      },
      "description": "Schema markup is structured data in a page's code that tells search engines what the page is about in their own vocabulary: an article, its author, a list of…",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/e99651e92856dc4c.png",
        "width": 1200,
        "height": 630,
        "caption": "Schema markup"
      }
    },
    {
      "@type": "DefinedTerm",
      "@id": "https://serpdad.com/blog/glossary/schema-markup/#term",
      "name": "Schema markup",
      "url": "https://serpdad.com/blog/glossary/schema-markup/",
      "inDefinedTermSet": {
        "@id": "https://serpdad.com/blog/glossary/#termset"
      },
      "description": "Schema markup is structured data in a page's code that tells search engines what the page is about in their own vocabulary: an article, its author, a list of…"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/glossary/topical-map/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Topical map",
          "item": "https://serpdad.com/blog/glossary/topical-map/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://serpdad.com/blog/glossary/topical-map/#webpage",
      "name": "Topical map",
      "url": "https://serpdad.com/blog/glossary/topical-map/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/glossary/topical-map/#breadcrumb"
      },
      "description": "A topical map is a plan of every page a site needs to cover one subject well, and of how those pages link to each other.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/4fe6336cd86972e3.png",
        "width": 1200,
        "height": 630,
        "caption": "Topical map"
      }
    },
    {
      "@type": "DefinedTerm",
      "@id": "https://serpdad.com/blog/glossary/topical-map/#term",
      "name": "Topical map",
      "url": "https://serpdad.com/blog/glossary/topical-map/",
      "inDefinedTermSet": {
        "@id": "https://serpdad.com/blog/glossary/#termset"
      },
      "description": "A topical map is a plan of every page a site needs to cover one subject well, and of how those pages link to each other."
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/authors/asif/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Khondokar MD Asiful Islam",
          "item": "https://serpdad.com/blog/authors/asif/"
        }
      ]
    },
    {
      "@type": "ProfilePage",
      "@id": "https://serpdad.com/blog/authors/asif/#webpage",
      "name": "Khondokar MD Asiful Islam",
      "url": "https://serpdad.com/blog/authors/asif/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/authors/asif/#breadcrumb"
      },
      "description": "Most people call him Asif.",
      "mainEntity": {
        "@id": "https://serpdad.com/blog/authors/asif/#person"
      },
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/media/f8a3f3d0fe386c52/800.jpg",
        "width": 800,
        "height": 800,
        "caption": "Khondokar MD Asiful Islam"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://serpdad.com/blog/#webpage",
      "name": "SerpDad Blog",
      "url": "https://serpdad.com/blog/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/#breadcrumb"
      },
      "description": "The newest posts on SerpDad Blog, with a link to every one.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/813722ee450d5886.png",
        "width": 1200,
        "height": 630,
        "caption": "SerpDad Blog"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/category/khalid/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Khalid",
          "item": "https://serpdad.com/blog/category/khalid/"
        }
      ]
    },
    {
      "@type": "CollectionPage",
      "@id": "https://serpdad.com/blog/category/khalid/#webpage",
      "name": "Khalid",
      "url": "https://serpdad.com/blog/category/khalid/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/category/khalid/#breadcrumb"
      },
      "description": "Khalid, the open-source blog engine this blog runs on: how it compares, how fast it is, and how writing in it works.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/6d2d5643d9fb1dd8.png",
        "width": 1200,
        "height": 630,
        "caption": "Khalid"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/tag/khalid/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "khalid",
          "item": "https://serpdad.com/blog/tag/khalid/"
        }
      ]
    },
    {
      "@type": "CollectionPage",
      "@id": "https://serpdad.com/blog/tag/khalid/#webpage",
      "name": "khalid",
      "url": "https://serpdad.com/blog/tag/khalid/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/tag/khalid/#breadcrumb"
      },
      "description": "khalid: the posts on SerpDad Blog in this list, newest first.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/b848212f7ba728b2.png",
        "width": 1200,
        "height": 630,
        "caption": "khalid"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/category/topical-authority/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Topical authority",
          "item": "https://serpdad.com/blog/category/topical-authority/"
        }
      ]
    },
    {
      "@type": "CollectionPage",
      "@id": "https://serpdad.com/blog/category/topical-authority/#webpage",
      "name": "Topical authority",
      "url": "https://serpdad.com/blog/category/topical-authority/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/category/topical-authority/#breadcrumb"
      },
      "description": "How to plan, write and link the pages a topic needs, so search engines see your blog as an authority on it.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/70dbb77dda695752.png",
        "width": 1200,
        "height": 630,
        "caption": "Topical authority"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/tag/topical-authority/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "topical authority",
          "item": "https://serpdad.com/blog/tag/topical-authority/"
        }
      ]
    },
    {
      "@type": "CollectionPage",
      "@id": "https://serpdad.com/blog/tag/topical-authority/#webpage",
      "name": "topical authority",
      "url": "https://serpdad.com/blog/tag/topical-authority/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/tag/topical-authority/#breadcrumb"
      },
      "description": "topical authority: the posts on SerpDad Blog in this list, newest first.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/e9bafaedeea4b800.png",
        "width": 1200,
        "height": 630,
        "caption": "topical authority"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/category/ai-search/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "AI search",
          "item": "https://serpdad.com/blog/category/ai-search/"
        }
      ]
    },
    {
      "@type": "CollectionPage",
      "@id": "https://serpdad.com/blog/category/ai-search/#webpage",
      "name": "AI search",
      "url": "https://serpdad.com/blog/category/ai-search/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/category/ai-search/#breadcrumb"
      },
      "description": "How to get your blog found, read and quoted by ChatGPT, Gemini, Perplexity, Claude and Google's AI answers.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/58cbc1f90e5af0d0.png",
        "width": 1200,
        "height": 630,
        "caption": "AI search"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/tag/writing/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "writing",
          "item": "https://serpdad.com/blog/tag/writing/"
        }
      ]
    },
    {
      "@type": "CollectionPage",
      "@id": "https://serpdad.com/blog/tag/writing/#webpage",
      "name": "writing",
      "url": "https://serpdad.com/blog/tag/writing/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/tag/writing/#breadcrumb"
      },
      "description": "writing: the posts on SerpDad Blog in this list, newest first.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/d40ea8c47682d7a3.png",
        "width": 1200,
        "height": 630,
        "caption": "writing"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/authors/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Authors",
          "item": "https://serpdad.com/blog/authors/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://serpdad.com/blog/authors/#webpage",
      "name": "Authors",
      "url": "https://serpdad.com/blog/authors/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/authors/#breadcrumb"
      },
      "description": "The people who write SerpDad Blog, and how many posts each has written.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/af6ef5991f2cefdd.png",
        "width": 1200,
        "height": 630,
        "caption": "Authors"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/glossary/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "The SerpDad glossary",
          "item": "https://serpdad.com/blog/glossary/"
        }
      ]
    },
    {
      "@type": "CollectionPage",
      "@id": "https://serpdad.com/blog/glossary/#webpage",
      "name": "The SerpDad glossary",
      "url": "https://serpdad.com/blog/glossary/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/glossary/#breadcrumb"
      },
      "description": "The SEO and AI search terms we use on the SerpDad Blog, each one explained in plain words in a few sentences.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/8e3e30811461d63d.png",
        "width": 1200,
        "height": 630,
        "caption": "The SerpDad glossary"
      }
    },
    {
      "@type": "DefinedTermSet",
      "@id": "https://serpdad.com/blog/glossary/#termset",
      "name": "The SerpDad glossary",
      "url": "https://serpdad.com/blog/glossary/",
      "inLanguage": "en",
      "description": "The SEO and AI search terms we use on the SerpDad Blog, each one explained in plain words in a few sentences.",
      "hasDefinedTerm": [
        {
          "@type": "DefinedTerm",
          "@id": "https://serpdad.com/blog/glossary/ai-info-page/#term",
          "name": "AI info page",
          "url": "https://serpdad.com/blog/glossary/ai-info-page/"
        },
        {
          "@type": "DefinedTerm",
          "@id": "https://serpdad.com/blog/glossary/answer-capsule/#term",
          "name": "Answer capsule",
          "url": "https://serpdad.com/blog/glossary/answer-capsule/"
        },
        {
          "@type": "DefinedTerm",
          "@id": "https://serpdad.com/blog/glossary/canonical-link/#term",
          "name": "Canonical link",
          "url": "https://serpdad.com/blog/glossary/canonical-link/"
        },
        {
          "@type": "DefinedTerm",
          "@id": "https://serpdad.com/blog/glossary/crawl-budget/#term",
          "name": "Crawl budget",
          "url": "https://serpdad.com/blog/glossary/crawl-budget/"
        },
        {
          "@type": "DefinedTerm",
          "@id": "https://serpdad.com/blog/glossary/internal-link/#term",
          "name": "Internal link",
          "url": "https://serpdad.com/blog/glossary/internal-link/"
        },
        {
          "@type": "DefinedTerm",
          "@id": "https://serpdad.com/blog/glossary/llms-txt/#term",
          "name": "llms.txt",
          "url": "https://serpdad.com/blog/glossary/llms-txt/"
        },
        {
          "@type": "DefinedTerm",
          "@id": "https://serpdad.com/blog/glossary/schema-markup/#term",
          "name": "Schema markup",
          "url": "https://serpdad.com/blog/glossary/schema-markup/"
        },
        {
          "@type": "DefinedTerm",
          "@id": "https://serpdad.com/blog/glossary/topical-map/#term",
          "name": "Topical map",
          "url": "https://serpdad.com/blog/glossary/topical-map/"
        }
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/series/topical-maps/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Topical maps",
          "item": "https://serpdad.com/blog/series/topical-maps/"
        }
      ]
    },
    {
      "@type": "CollectionPage",
      "@id": "https://serpdad.com/blog/series/topical-maps/#webpage",
      "name": "Topical maps",
      "url": "https://serpdad.com/blog/series/topical-maps/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/series/topical-maps/#breadcrumb"
      },
      "description": "A series in 3 parts, best read in order.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/4a3ad0d4f14657d9.png",
        "width": 1200,
        "height": 630,
        "caption": "Topical maps"
      }
    },
    {
      "@type": "ItemList",
      "@id": "https://serpdad.com/blog/series/topical-maps/#list-1",
      "name": "Topical maps",
      "numberOfItems": 3,
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "What a topical map is, and why a small blog needs one",
          "url": "https://serpdad.com/blog/topical-map-explained/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "How to build a topical map for your blog, step by step",
          "url": "https://serpdad.com/blog/build-topical-map/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "How the internal links in a topical map should work",
          "url": "https://serpdad.com/blog/topical-map-internal-links/"
        }
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://serpdad.com/blog/sitemap/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "SerpDad Blog",
          "item": "https://serpdad.com/blog/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Sitemap",
          "item": "https://serpdad.com/blog/sitemap/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://serpdad.com/blog/sitemap/#webpage",
      "name": "Sitemap",
      "url": "https://serpdad.com/blog/sitemap/",
      "isPartOf": {
        "@id": "https://serpdad.com/blog/#website"
      },
      "inLanguage": "en",
      "breadcrumb": {
        "@id": "https://serpdad.com/blog/sitemap/#breadcrumb"
      },
      "description": "Every page on SerpDad Blog in one list, grouped by kind.",
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://serpdad.com/blog/share/22e5afb06a89dd94.png",
        "width": 1200,
        "height": 630,
        "caption": "Sitemap"
      }
    }
  ]
}