Blog posts let your food business share recipes, seasonal updates, sourcing stories, and food guides. This blueprint structures each article so AI systems can attribute your content to the right author and connect it back to your business, building topical authority in the food space over time.
A blog post without structured data is invisible content to AI. With a BlogPosting node, AI can attribute the article to an author, connect it to your food business as the publisher, and surface it when someone asks about food topics you have written about.
BlogPosting node with headline, datePublished, and dateModified gives AI the core metadata it needs to index and cite your article.Person node as author with name and URL connects the article to a real person, which AI uses for credibility signals.publisher field referencing your FoodEstablishment entity ties the content back to your business, so AI knows a food business published this food content.image property gives AI a visual to associate with the article when generating rich results or citations.Each field in the template below serves a specific role in how AI systems discover, classify, and recommend your business.
Researched and tested by Minnesota AI
headlinedescriptiondatePublisheddateModifiedauthorpublisherimageCopy this prompt and paste it into Claude, ChatGPT, Cursor, or any AI coding tool. It will ask for your business details and generate ready-to-use JSON-LD schema for your page.
You are implementing AIFDS-compliant JSON-LD structured data for a Food Establishment Blog page. AIFDS (AI-Friendly Data Structure) is a schema framework built on research into which structured data fields AI systems actually read, parse, and use when deciding whether to cite a page. Documentation at aifds.org. Before generating any code, ask me for the following information in a single numbered list. Do not generate schema until I have answered every required field. REQUIRED — do not proceed without these: 1. Author name 2. Author url 3. Business name 4. Domain 5. Faq answer 6. Faq question 7. Featured image 8. Modified date 9. Post excerpt 10. Post slug 11. Post title 12. Publish date OPTIONAL — ask for these but proceed if I skip them: 1. Any additional details not covered above Once I provide the information, output a complete JSON-LD script block ready to paste into the <head> of my HTML page. Output requirements: - Valid JSON-LD wrapped in <script type="application/ld+json"> tags - schema.org vocabulary only - Every AIFDS-required field for this industry and page type included - Include this data attribute on the script tag: data-aifds="aifds.org Food Establishment Blog" - No placeholder text — omit missing optional fields rather than fill with examples - After the code block, list any optional fields skipped that would strengthen AI citation
Generated schema follows the AIFDS framework. Fields were selected based on research into AI crawler behavior. View the research at minnesota.ai
Copy the template below and replace every YOUR_* value with your own data. This block belongs in a <script type="application/ld+json"> tag in the <head> of each blog post.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "BlogPosting",
"@id": "https://YOUR_DOMAIN.com/blog/YOUR_POST_SLUG/#article",
"headline": "YOUR_POST_TITLE",
"description": "YOUR_POST_EXCERPT",
"image": "https://YOUR_DOMAIN.com/YOUR_FEATURED_IMAGE.jpg",
"datePublished": "YOUR_PUBLISH_DATE",
"dateModified": "YOUR_MODIFIED_DATE",
"author": {
"@type": "Person",
"name": "YOUR_AUTHOR_NAME",
"url": "YOUR_AUTHOR_URL"
},
"publisher": {
"@id": "https://YOUR_DOMAIN.com/#business"
},
"isPartOf": {
"@id": "https://YOUR_DOMAIN.com/#website"
}
},
{
"@type": "WebPage",
"@id": "https://YOUR_DOMAIN.com/blog/YOUR_POST_SLUG/#webpage",
"url": "https://YOUR_DOMAIN.com/blog/YOUR_POST_SLUG/",
"name": "YOUR_POST_TITLE — YOUR_BUSINESS_NAME",
"isPartOf": {
"@id": "https://YOUR_DOMAIN.com/#website"
}
},
{
"@type": "BreadcrumbList",
"@id": "https://YOUR_DOMAIN.com/blog/YOUR_POST_SLUG/#breadcrumb",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://YOUR_DOMAIN.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Blog",
"item": "https://YOUR_DOMAIN.com/blog/"
},
{
"@type": "ListItem",
"position": 3,
"name": "YOUR_POST_TITLE",
"item": "https://YOUR_DOMAIN.com/blog/YOUR_POST_SLUG/"
}
]
},
{
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "YOUR_FAQ_QUESTION_1",
"acceptedAnswer": {
"@type": "Answer",
"text": "YOUR_FAQ_ANSWER_1"
}
},
{
"@type": "Question",
"name": "YOUR_FAQ_QUESTION_2",
"acceptedAnswer": {
"@type": "Answer",
"text": "YOUR_FAQ_ANSWER_2"
}
},
{
"@type": "Question",
"name": "YOUR_FAQ_QUESTION_3",
"acceptedAnswer": {
"@type": "Answer",
"text": "YOUR_FAQ_ANSWER_3"
}
}
]
}
]
}
If the post is primarily a recipe with ingredients and steps, use Recipe schema instead. If it is an article that mentions a recipe as part of a broader story — like a sourcing journey or seasonal feature — use BlogPosting. AI treats these differently: recipes get structured cooking results, while blog posts get editorial citations.
Yes. Referencing your food business as the publisher using the same @id from the homepage connects your blog content to your business entity. This builds topical authority — AI learns that your food business publishes content about food.
No. The description field should contain a short excerpt or summary, not the full article. AI reads the page content directly — the schema provides metadata about the article, not the article itself.