NEW Set Up Tap to Pay on Mobile Devices
Set Up Tap to Pay on Mobile Devices
I've learned that the best solutions are often the simplest ones. Instead of wrestling with complex code, Shopify's metafields let you create powerful blog-to-product connections through the admin interface—no developer required!
Here's the transformation you'll achieve:
BEFORE (Basic Blog Post):
AFTER (Optimized with Metafields):
The key to successful blog optimization is choosing the right approach based on your content volume and team structure. Let me break down when to use each method:
Real Example: You write a blog post about "Holiday Email Marketing" and want to feature your email automation service, holiday card templates, and analytics tool.
Real Example: You have 5 writers creating content, and you want to create standardized "Product Showcase" blocks that can be reused across different posts with consistent formatting and tracking.
Most blog posts work best with one hero product that directly relates to your content. Here's the step-by-step setup:
Field Name: Featured Product
Namespace: blog
Key: featured_product
Type: Product reference
Description: Main product highlighted in this blog postWhen you need to feature multiple products, you have three strategic approaches. Choose based on your content goals:
Field Name: Featured Products
Namespace: blog
Key: featured_products
Type: List of product references
Description: Products mentioned or recommended in this post
Maximum: 5 products (recommended limit)Best For: Product roundups, comparison posts, "tools we use" articles
Example Use Case: "10 Must-Have Tools for Your Home Office" featuring desk, chair, laptop stand, monitor, and keyboard
Type: Product Showcase
Handle: product_showcase
Fields:
• product (Product reference) - Required
• category (Single line text) - e.g., "Essential", "Upgrade", "Budget"
• context (Multi-line text) - Why this product fits the article
• call_to_action (Single line text) - Custom CTA button text
• discount_code (Single line text) - Special offer for blog readers
• placement_priority (Number) - Display order in postBest For: Detailed product guides, tiered recommendations, sponsored content
Example Use Case: "Complete eCommerce Tech Stack" with products categorized as "Essential Tools", "Growth Stage", and "Enterprise Level"
1-3 Products per Post:
→ Use "List of product references" metafield
→ Simple, fast setup
→ Perfect for most content
4-8 Products per Post:
→ Use Product Showcase metaobject
→ Categorization and context
→ Better user experience
8+ Products per Post:
→ Consider breaking into multiple posts
→ OR use hybrid approach with categories
→ Avoid overwhelming readersWhen you're publishing regularly (like I recommend for 7-figure growth), you need systems that make product connections effortless. Here's how to scale:
Educational Posts (80% of content):
Product Roundups (15% of content):
In-Depth Guides (5% of content):
For businesses with consistent product mentions across multiple posts, create reusable metaobjects:
Type: Product Bundle
Handle: starter_pack
Use Case: Feature the same 3-4 essential products across multiple beginner guides
Benefits:
• Consistent messaging across posts
• Easy updates (change once, updates everywhere)
• Better analytics tracking
• Professional presentation
For most store owners, I recommend starting with app-based solutions. These give you all the benefits of advanced schema optimization without any technical complexity or maintenance headaches.
TinyIMG ($9.99/month)
JSON-LD for SEO ($19.99/month)
SearchPie ($9.95/month)
Setup Process (Any Schema App):
Whether you use apps or advanced implementation, here's what metafields-powered optimization delivers:
Your content becomes discoverable and citable by AI engines like ChatGPT, Claude, and Perplexity.
Author & Expertise (for AI Authority):
• author_name (Single line text) - "Veronica Jeans"
• author_title (Single line text) - "eCommerce Consultant & Shopify Expert"
• expertise_level (Single line text) - "Beginner", "Intermediate", "Advanced"
• target_audience (Single line text) - "Small business owners", "Enterprise"
Content Classification:
• reading_time (Number) - 5 (minutes)
• topic_category (Single line text) - "Email Marketing", "Shopify Setup"
• difficulty_level (Single line text) - Helps AI recommend appropriately
• key_takeaways (Multi-line text) - 3-5 bullet points of main insights
Product Connections:
• featured_product (Product reference) - Single hero product
• featured_products (List of product references) - Multiple products (limit 5)The key to success is creating a workflow that your content team can follow consistently. Here's the system I use with my 7-figure clients:
Time Investment: 2 minutes extra per post
Setup: Create author profiles for each team member
Advanced Setup: Metaobjects for complex workflows
Required Fields Check:
□ Author name and title filled
□ Reading time estimated (aim for 3-7 minutes)
□ Topic category selected from approved list
□ Target audience specified
□ At least one product connected (if applicable)
Quality Check:
□ Product relevance matches content
□ Key takeaways accurately summarize post
□ Expertise level matches content complexity
□ Geographic targeting appropriate for topicHere's the reality that most guides don't tell you: Shopify themes update constantly (at least monthly), and most paid themes don't have auto-updaters. This means any schema code you add gets wiped out regularly unless you plan for it.
File to Edit: sections/main-article.liquid
Update Strategy: Create backup snippet, document changes clearly
{% comment %} Add at top of sections/main-article.liquid {% endcomment %}
{% if article %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "{{ article.title | escape }}",
"author": {
"@type": "Person",
"name": "{{ article.metafields.blog.author_name.value | default: shop.name }}",
"jobTitle": "{{ article.metafields.blog.author_title.value }}"
},
"datePublished": "{{ article.created_at | date: '%Y-%m-%dT%H:%M:%S%z' }}",
"dateModified": "{{ article.updated_at | date: '%Y-%m-%dT%H:%M:%S%z' }}",
{% if article.image %}
"image": "{{ article.image | img_url: '1200x630' }}",
{% endif %}
"publisher": {
"@type": "Organization",
"name": "{{ shop.name }}"
{% if shop.brand.logo %},"logo": "{{ shop.brand.logo | img_url: '600x' }}"{% endif %}
},
"mainEntityOfPage": "{{ shop.url }}{{ article.url }}",
"timeRequired": "PT{{ article.metafields.blog.reading_time.value | default: 5 }}M"
{% if article.metafields.blog.featured_product.value %},
"mentions": {
"@type": "Product",
"name": "{{ article.metafields.blog.featured_product.value.title }}",
"url": "{{ shop.url }}{{ article.metafields.blog.featured_product.value.url }}"
}
{% endif %}
}
</script>
{% endif %}Advantage: Theme updater preserves customizations
File to Edit: templates/article.liquid
Update Risk: Low (if using theme updater)
{% comment %} Add after line 1 in templates/article.liquid {% endcomment %}
{% if article %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "{{ article.title | escape }}",
"author": {
"@type": "Person",
"name": "{{ article.metafields.blog.author_name.value | default: 'Store Owner' }}",
"jobTitle": "{{ article.metafields.blog.author_title.value }}",
"knowsAbout": "{{ article.metafields.blog.expertise_areas.value | split: ',' | join: ', ' }}"
},
"publisher": {
"@type": "Organization",
"name": "{{ shop.name }}",
"logo": "{{ shop.brand.logo | img_url: '600x' }}"
},
"datePublished": "{{ article.created_at | date: '%Y-%m-%dT%H:%M:%S%z' }}",
"dateModified": "{{ article.updated_at | date: '%Y-%m-%dT%H:%M:%S%z' }}",
"image": "{{ article.image | img_url: '1200x630' }}",
"mainEntityOfPage": "{{ shop.url }}{{ article.url }}",
"articleSection": "{{ blog.title }}",
"about": "{{ article.metafields.blog.topic_category.value }}",
"audience": {
"@type": "Audience",
"audienceType": "{{ article.metafields.blog.target_audience.value }}"
},
"timeRequired": "PT{{ article.metafields.blog.reading_time.value | default: 5 }}M"
{% if article.metafields.blog.featured_products.value %},
"mentions": [
{% for product in article.metafields.blog.featured_products.value %}
{
"@type": "Product",
"name": "{{ product.title | escape }}",
"url": "{{ shop.url }}{{ product.url }}",
"offers": {
"@type": "Offer",
"price": "{{ product.price | money_without_currency }}",
"priceCurrency": "{{ shop.currency }}"
}
}{% unless forloop.last %},{% endunless %}
{% endfor %}
]
{% endif %}
}
</script>
{% endif %}Current Status: Manual updates required (updater in development)
File Strategy: Use the snippet method for easier re-implementation
Step 1: Create snippets/blog-schema.liquid with schema code
Step 2: Add {% render 'blog-schema' %} to templates/article.liquid
Benefits:
• Easy to backup and restore
• Clear separation of custom code
• Faster re-implementation after updates
• Better documentationRecommended Apps:
Advantages:
Considerations:
Educational Content (80%):
Comparison Content (15%):
Showcase Content (5%):
Track These Metrics:
• Blog traffic increase from rich snippets
• Click-through rates on product mentions
• Conversion rates by product connection type
• AI search engine citations and mentions
• Google Search Console rich results performance
Optimization Actions:
• Update underperforming product connections
• Refine metafields based on what works
• Expand successful content strategies
• Train team on best-performing approachesHere are the exact implementation steps for popular theme families. I'll provide both metafield and metaobject approaches for each.
File to Edit: templates/article.liquid
Location: After line 1 (before any other content)
{% comment %} Regina Blog Schema - Add after line 1 {% endcomment %}
{% if article %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "{{ article.title | escape }}",
"description": "{{ article.excerpt | default: article.content | strip_html | truncate: 160 | escape }}",
"author": {
"@type": "Person",
"name": "{{ article.metafields.blog.author_name.value | default: shop.name }}",
"url": "{{ article.metafields.blog.author_url.value }}",
"jobTitle": "{{ article.metafields.blog.author_title.value }}"
},
"publisher": {
"@type": "Organization",
"name": "{{ shop.name }}",
"logo": {
"@type": "ImageObject",
"url": "{{ shop.brand.logo | img_url: '600x' }}"
}
},
"datePublished": "{{ article.created_at | date: '%Y-%m-%dT%H:%M:%S%z' }}",
"dateModified": "{{ article.updated_at | date: '%Y-%m-%dT%H:%M:%S%z' }}",
{% if article.image %}
"image": {
"@type": "ImageObject",
"url": "{{ article.image | img_url: '1200x630' }}",
"width": 1200,
"height": 630
},
{% endif %}
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "{{ shop.url }}{{ article.url }}"
},
"articleSection": "{{ blog.title }}",
"wordCount": {{ article.content | strip_html | split: ' ' | size }},
"timeRequired": "PT{{ article.metafields.blog.reading_time.value | default: 5 }}M",
{% if article.metafields.blog.featured_products.value %}
"mentions": [
{% for product in article.metafields.blog.featured_products.value %}
{
"@type": "Product",
"name": "{{ product.title | escape }}",
"url": "{{ shop.url }}{{ product.url }}",
"image": "{{ product.featured_image | img_url: '600x' }}",
"offers": {
"@type": "Offer",
"price": "{{ product.price | money_without_currency }}",
"priceCurrency": "{{ shop.currency }}",
"availability": "{% if product.available %}InStock{% else %}OutOfStock{% endif %}"
}
}{% unless forloop.last %},{% endunless %}
{% endfor %}
],
{% endif %}
"about": "{{ article.metafields.blog.topic_category.value | default: blog.title }}"
}
</script>
{% endif %}File to Edit: sections/article-template.liquid
Location: At the very beginning of the file
{% comment %} Parallax Blog Schema with Metaobjects {% endcomment %}
{% if article and article.metafields.blog.author_profile.value %}
{% assign author_profile = article.metafields.blog.author_profile.value %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "{{ article.title | escape }}",
"description": "{{ article.excerpt | default: article.content | strip_html | truncate: 160 | escape }}",
"author": {
"@type": "Person",
"name": "{{ author_profile.name.value }}",
"url": "{{ author_profile.profile_url.value }}",
"jobTitle": "{{ author_profile.job_title.value }}",
"description": "{{ author_profile.bio.value | truncate: 200 }}",
{% if author_profile.photo.value %}
"image": "{{ author_profile.photo.value | img_url: '300x300' }}",
{% endif %}
"sameAs": [
{% for social_link in author_profile.social_links.value %}
"{{ social_link }}"{% unless forloop.last %},{% endunless %}
{% endfor %}
]
},
"publisher": {
"@type": "Organization",
"name": "{{ shop.name }}",
"logo": {
"@type": "ImageObject",
"url": "{{ shop.brand.logo | img_url: '600x' }}"
}
},
"datePublished": "{{ article.created_at | date: '%Y-%m-%dT%H:%M:%S%z' }}",
"dateModified": "{{ article.updated_at | date: '%Y-%m-%dT%H:%M:%S%z' }}",
{% if article.image %}
"image": {
"@type": "ImageObject",
"url": "{{ article.image | img_url: '1200x630' }}",
"width": 1200,
"height": 630
},
{% endif %}
"mainEntityOfPage": "{{ shop.url }}{{ article.url }}",
"articleSection": "{{ blog.title }}",
"expertise": "{{ author_profile.expertise_areas.value | join: ', ' }}"
}
</script>
{% endif %}File to Edit: templates/article.liquid
Location: Before the opening <article> tag
{% comment %} Next Theme Blog Schema {% endcomment %}
{% if article %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "{{ article.title | escape }}",
"alternativeHeadline": "{{ article.metafields.seo.meta_title.value | escape }}",
"description": "{{ article.excerpt | default: article.content | strip_html | truncate: 160 | escape }}",
"author": {
"@type": "Person",
"name": "{{ article.metafields.blog.author_name.value | default: 'Veronica Jeans' }}",
"jobTitle": "{{ article.metafields.blog.author_title.value | default: 'eCommerce Consultant' }}",
"url": "{{ article.metafields.blog.author_url.value }}"
},
"publisher": {
"@type": "Organization",
"name": "{{ shop.name }}",
"logo": {
"@type": "ImageObject",
"url": "{{ shop.brand.logo | img_url: '600x' }}"
}
},
"datePublished": "{{ article.created_at | date: '%Y-%m-%dT%H:%M:%S%z' }}",
"dateModified": "{{ article.updated_at | date: '%Y-%m-%dT%H:%M:%S%z' }}",
{% if article.image %}
"image": {
"@type": "ImageObject",
"url": "{{ article.image | img_url: '1200x630' }}",
"width": 1200,
"height": 630,
"caption": "{{ article.image.alt | escape }}"
},
{% endif %}
"mainEntityOfPage": "{{ shop.url }}{{ article.url }}",
"url": "{{ shop.url }}{{ article.url }}",
"articleSection": "{{ blog.title }}",
"genre": "{{ article.metafields.blog.content_type.value | default: 'Business' }}",
"keywords": "{{ article.tags | join: ', ' }}",
"wordCount": {{ article.content | strip_html | split: ' ' | size }},
"timeRequired": "PT{{ article.metafields.blog.reading_time.value | default: 5 }}M",
"inLanguage": "en-US",
"copyrightYear": {{ article.created_at | date: '%Y' }},
"copyrightHolder": "{{ shop.name }}"
{% if article.metafields.blog.featured_products.value %},
"mentions": [
{% for product in article.metafields.blog.featured_products.value %}
{
"@type": "Product",
"name": "{{ product.title | escape }}",
"url": "{{ shop.url }}{{ product.url }}",
"description": "{{ product.description | strip_html | truncate: 100 | escape }}",
"image": "{{ product.featured_image | img_url: '600x' }}",
"brand": {
"@type": "Brand",
"name": "{{ product.vendor | escape }}"
},
"offers": {
"@type": "Offer",
"price": "{{ product.price | money_without_currency }}",
"priceCurrency": "{{ shop.currency }}",
"availability": "{% if product.available %}https://schema.org/InStock{% else %}https://schema.org/OutOfStock{% endif %}",
"url": "{{ shop.url }}{{ product.url }}"
}
}{% unless forloop.last %},{% endunless %}
{% endfor %}
]
{% endif %}
}
</script>
{% endif %}Both themes follow similar structure. File to Edit: sections/blog-post.liquid
{% comment %} Exclusive/Xtra Advanced Schema {% endcomment %}
{% if article %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "{{ article.title | escape }}",
"description": "{{ article.excerpt | default: article.content | strip_html | truncate: 160 | escape }}",
"author": {
"@type": "Person",
"name": "{{ article.metafields.blog.author_name.value | default: 'Veronica Jeans' }}",
"jobTitle": "{{ article.metafields.blog.author_title.value }}",
"description": "{{ article.metafields.blog.author_bio.value }}",
"url": "{{ article.metafields.blog.author_url.value }}",
"knowsAbout": [
{% assign expertise = article.metafields.blog.expertise_areas.value | split: ',' %}
{% for area in expertise %}
"{{ area | strip | escape }}"{% unless forloop.last %},{% endunless %}
{% endfor %}
]
},
"publisher": {
"@type": "Organization",
"name": "{{ shop.name }}",
"logo": {
"@type": "ImageObject",
"url": "{{ shop.brand.logo | img_url: '600x' }}"
},
"url": "{{ shop.url }}"
},
"datePublished": "{{ article.created_at | date: '%Y-%m-%dT%H:%M:%S%z' }}",
"dateModified": "{{ article.updated_at | date: '%Y-%m-%dT%H:%M:%S%z' }}",
{% if article.image %}
"image": {
"@type": "ImageObject",
"url": "{{ article.image | img_url: '1200x630' }}",
"width": 1200,
"height": 630
},
{% endif %}
"mainEntityOfPage": "{{ shop.url }}{{ article.url }}",
"articleSection": "{{ blog.title }}",
"about": "{{ article.metafields.blog.topic_category.value }}",
"audience": {
"@type": "Audience",
"audienceType": "{{ article.metafields.blog.target_audience.value | default: 'eCommerce business owners' }}"
},
"educationalLevel": "{{ article.metafields.blog.difficulty_level.value | default: 'Beginner' }}",
"timeRequired": "PT{{ article.metafields.blog.reading_time.value | default: 5 }}M"
{% if article.metafields.blog.faq_questions.value %},
"mainEntity": [
{% assign questions = article.metafields.blog.faq_questions.value | split: '|' %}
{% assign answers = article.metafields.blog.faq_answers.value | split: '|' %}
{% for question in questions %}
{
"@type": "Question",
"name": "{{ question | strip | escape }}",
"acceptedAnswer": {
"@type": "Answer",
"text": "{{ answers[forloop.index0] | strip | escape }}"
}
}{% unless forloop.last %},{% endunless %}
{% endfor %}
]
{% endif %}
}
</script>
{% endif %}Before implementing any Schema, create these metafields in your Shopify admin:
1. Author Information (Generative Engine Optimization):
- Namespace: blog | Key: author_name | Type: Single line text
- Namespace: blog | Key: author_title | Type: Single line text
- Namespace: blog | Key: author_bio | Type: Multi-line text
- Namespace: blog | Key: author_url | Type: URL
- Namespace: blog | Key: author_credentials | Type: Multi-line text
2. Content Details (Both GEO types):
- Namespace: blog | Key: reading_time | Type: Number (integer)
- Namespace: blog | Key: topic_category | Type: Single line text
- Namespace: blog | Key: target_audience | Type: Single line text
- Namespace: blog | Key: difficulty_level | Type: Single line text
- Namespace: blog | Key: learning_outcomes | Type: Multi-line text
3. Product Integration:
- Namespace: blog | Key: featured_products | Type: List of products
4. Generative Engine Optimization:
- Namespace: blog | Key: expertise_areas | Type: Single line text
- Namespace: blog | Key: sources_cited | Type: Multi-line text
- Namespace: blog | Key: fact_check_date | Type: Date
5. Local GEO (Geographic SEO):
- Namespace: blog | Key: location | Type: Single line text
- Namespace: blog | Key: region | Type: Single line text
- Namespace: blog | Key: city | Type: Single line text
- Namespace: blog | Key: service_radius | Type: Number (integer)
- Namespace: blog | Key: latitude | Type: Single line text
- Namespace: blog | Key: longitude | Type: Single line text
6. Advanced Features:
- Namespace: blog | Key: faq_questions | Type: Multi-line text
- Namespace: blog | Key: faq_answers | Type: Multi-line textMetaobject Type: "Author Profile"
Handle: author_profile
Fields:
1. name (Single line text) - Required
2. job_title (Single line text)
3. bio (Rich text)
4. photo (File - Image)
5. profile_url (URL)
6. social_links (List of URLs)
7. expertise_areas (List of single line text)
8. years_experience (Number)
9. certifications (Multi-line text){% comment %}
Universal Blog Schema Snippet
Create file: snippets/blog-schema.liquid
Include in article template: {% render 'blog-schema' %}
{% endcomment %}
{% if article %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "{{ article.title | escape }}",
"description": "{{ article.excerpt | default: article.content | strip_html | truncate: 160 | escape }}",
"author": {
"@type": "Person",
"name": "{{ article.metafields.blog.author_name.value | default: shop.name }}",
{% if article.metafields.blog.author_title.value %}"jobTitle": "{{ article.metafields.blog.author_title.value }}",{% endif %}
{% if article.metafields.blog.author_url.value %}"url": "{{ article.metafields.blog.author_url.value }}",{% endif %}
{% if article.metafields.blog.author_bio.value %}"description": "{{ article.metafields.blog.author_bio.value | truncate: 200 | escape }}",{% endif %}
{% if article.metafields.blog.author_credentials.value %}"hasCredential": "{{ article.metafields.blog.author_credentials.value }}",{% endif %}
"knowsAbout": [
{% if article.metafields.blog.expertise_areas.value %}
{% assign expertise = article.metafields.blog.expertise_areas.value | split: ',' %}
{% for area in expertise %}"{{ area | strip | escape }}"{% unless forloop.last %},{% endunless %}{% endfor %}
{% else %}"eCommerce", "Shopify", "Online Business"{% endif %}
]
},
"publisher": {
"@type": "Organization",
"name": "{{ shop.name }}",
{% if shop.brand.logo %}"logo": {
"@type": "ImageObject",
"url": "{{ shop.brand.logo | img_url: '600x' }}"
},{% endif %}
"url": "{{ shop.url }}"
},
"datePublished": "{{ article.created_at | date: '%Y-%m-%dT%H:%M:%S%z' }}",
"dateModified": "{{ article.updated_at | date: '%Y-%m-%dT%H:%M:%S%z' }}",
{% if article.image %}"image": {
"@type": "ImageObject",
"url": "{{ article.image | img_url: '1200x630' }}",
"width": 1200,
"height": 630,
"caption": "{{ article.image.alt | default: article.title | escape }}"
},{% endif %}
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "{{ shop.url }}{{ article.url }}"
},
"url": "{{ shop.url }}{{ article.url }}",
"articleSection": "{{ blog.title }}",
"about": "{{ article.metafields.blog.topic_category.value | default: blog.title }}",
"genre": "{{ article.metafields.blog.content_type.value | default: 'Business' }}",
"keywords": "{{ article.tags | join: ', ' }}",
"wordCount": {{ article.content | strip_html | split: ' ' | size }},
"timeRequired": "PT{{ article.metafields.blog.reading_time.value | default: 5 }}M",
"inLanguage": "en-US",
"copyrightYear": {{ article.created_at | date: '%Y' }},
"copyrightHolder": "{{ shop.name }}"
{% if article.metafields.blog.target_audience.value %},"audience": {
"@type": "Audience",
"audienceType": "{{ article.metafields.blog.target_audience.value }}"
}{% endif %}
{% if article.metafields.blog.difficulty_level.value %},"educationalLevel": "{{ article.metafields.blog.difficulty_level.value }}"{% endif %}
{% if article.metafields.blog.learning_outcomes.value %},"teaches": "{{ article.metafields.blog.learning_outcomes.value }}"{% endif %}
{% if article.metafields.blog.location.value %},"spatialCoverage": {
"@type": "Place",
"name": "{{ article.metafields.blog.location.value }}"
{% if article.metafields.blog.region.value or article.metafields.blog.city.value %},"address": {
"@type": "PostalAddress"
{% if shop.address.country %},"addressCountry": "{{ shop.address.country }}"{% endif %}
{% if article.metafields.blog.region.value %},"addressRegion": "{{ article.metafields.blog.region.value }}"{% endif %}
{% if article.metafields.blog.city.value %},"addressLocality": "{{ article.metafields.blog.city.value }}"{% endif %}
}{% endif %}
}{% endif %}
{% if article.metafields.blog.featured_products.value %},"mentions": [
{% for product in article.metafields.blog.featured_products.value %}
{
"@type": "Product",
"name": "{{ product.title | escape }}",
"description": "{{ product.description | strip_html | truncate: 100 | escape }}",
"url": "{{ shop.url }}{{ product.url }}",
"image": "{{ product.featured_image | img_url: '600x' }}",
"brand": {
"@type": "Brand",
"name": "{{ product.vendor | default: shop.name | escape }}"
},
"sku": "{{ product.selected_or_first_available_variant.sku }}",
"offers": {
"@type": "Offer",
"price": "{{ product.price | money_without_currency }}",
"priceCurrency": "{{ shop.currency }}",
"availability": "{% if product.available %}https://schema.org/InStock{% else %}https://schema.org/OutOfStock{% endif %}",
"url": "{{ shop.url }}{{ product.url }}",
"seller": {
"@type": "Organization",
"name": "{{ shop.name }}"
}
}
}{% unless forloop.last %},{% endunless %}
{% endfor %}
]{% endif %}
{% if article.metafields.blog.faq_questions.value and article.metafields.blog.faq_answers.value %},"mainEntity": [
{% assign questions = article.metafields.blog.faq_questions.value | split: '|' %}
{% assign answers = article.metafields.blog.faq_answers.value | split: '|' %}
{% for question in questions %}
{
"@type": "Question",
"name": "{{ question | strip | escape }}",
"acceptedAnswer": {
"@type": "Answer",
"text": "{{ answers[forloop.index0] | strip | escape }}"
}
}{% unless forloop.last %},{% endunless %}
{% endfor %}
]{% endif %}
}
</script>
{% endif %}{% render 'blog-schema' %}
Using metafields and metaobjects for blog optimization isn't just about technical SEO—it's about creating a scalable content system that connects your expertise to your products seamlessly. This approach has helped my clients achieve 7-figure success because it makes every blog post work harder for your business.
Choose Custom Schema Code if:
Choose Schema Apps if:
As an eCommerce business consultant who has helped entrepreneurs build 7-figure online businesses, I know that proper content optimization can make the difference between a struggling blog and a traffic-driving, conversion-generating content machine.
I can help you:
Get my latest insights on Shopify optimization, AI-powered SEO, and conversion strategies that help eCommerce businesses achieve 7-figure success.
[Omnisend signup form will be embedded here]
Join 10,000+ eCommerce entrepreneurs getting weekly strategies that drive results
eCommerce business consultant and Shopify expert who has coached entrepreneurs to build 7-figure online businesses. With extensive experience in global eCommerce, international finance, and digital marketing, Veronica helps businesses optimize their online presence for maximum profitability.
Current Role: Lecturer at Collegium Civitas University (E-Commerce, SEO/SEM, Social Media)
Location: Houston, Texas (Originally from Namibia)
Expertise: Shopify optimization, International eCommerce, AI-powered marketing