Appearance
Legacy Theme FAQ Block Installation
Manually add the Keystone AI SEO FAQ block to themes that don't support Shopify 2.0 app blocks.
TIP
Recommended: Let our support team do this for you. We'll add the Keystone code to your theme and ensure everything is installed correctly. Contact us at support@key-stone.app or through the chat widget inside the Keystone app.
Overview
If your store uses a legacy (Shopify 1.0) theme or a custom theme that doesn't support app blocks, you can still display Keystone AI SEO FAQs by manually adding a small Liquid snippet to your theme.
WARNING
Advanced setup. This guide requires editing your Shopify theme code. If you're not comfortable editing Liquid files, we recommend using our free installation service instead.
When You Need This
Use manual installation if:
- Your theme doesn't support app blocks in the Theme Editor.
- You're using a legacy (vintage) Shopify theme.
- You're using a custom-built theme without Online Store 2.0 support.
- The standard app block installation isn't available.
Installation
Step 1 — Create the Snippet
From Shopify Admin, go to Online Store → Themes.
Click the ⋯ (three dots) next to your active theme.
Select Edit code.
Open the Snippets folder.
Click Add a new snippet.
Name it:
keystone-faqNOTE
Do not include the
.liquidextension. Shopify will add it automatically.Click Create snippet.
Step 2 — Add the Snippet Code
Paste the following code into the new snippet:
liquid
{% comment %}
Keystone FAQ — vintage theme snippet (product + article)
Usage: {% render 'keystone-faq' %}
{% endcomment %}
{% assign faqs_list = blank %}
{% if product %}
{% assign faqs_list = product.metafields.faqs.questions_and_answers.value %}
{% elsif article %}
{% assign faqs_list = article.metafields.faqs.questions_and_answers.value %}
{% endif %}
{% if faqs_list != blank and faqs_list.size > 0 %}
<div class="keystone-faq-block">
<div class="keystone-faq-list">
{% for faq in faqs_list %}
{% assign question = faq.q | default: faq.question %}
{% assign answer = faq.a | default: faq.answer %}
{% if question != blank or answer != blank %}
<details class="keystone-faq-item">
<summary class="keystone-faq-question">
{{ question }}
</summary>
<div class="keystone-faq-answer">
{{ answer }}
</div>
</details>
{% endif %}
{% endfor %}
</div>
</div>
<style>
.keystone-faq-block {
max-width: 700px;
margin: 24px auto;
font-family: inherit;
}
.keystone-faq-item {
border-bottom: 1px solid #ddd;
padding: 10px 0;
}
.keystone-faq-question {
cursor: pointer;
font-weight: 600;
display: flex;
justify-content: space-between;
align-items: center;
list-style: none;
}
.keystone-faq-question::-webkit-details-marker {
display: none;
}
.keystone-faq-question::after {
content: "▼";
font-size: 0.8em;
transition: transform 0.2s ease;
margin-left: 12px;
flex-shrink: 0;
}
details[open] .keystone-faq-question::after {
transform: rotate(-180deg);
}
.keystone-faq-answer {
margin-top: 8px;
padding-left: 10px;
color: #444;
font-weight: 400;
line-height: 1.5;
}
</style>
{% endif %}Click Save.
Step 3 — Add the Snippet to Product Pages
Locate your product template. Common locations include:
sections/product-template.liquidsections/main-product.liquidtemplates/product.liquid
Find where you'd like the FAQ section to appear (typically below the product description) and insert:
liquid{% render 'keystone-faq' %}Save the file.
Step 4 — Add the Snippet to Article Pages
Locate your article template. Common locations include:
sections/article-template.liquidsections/main-article.liquidtemplates/article.liquid
Find where you'd like the FAQ section to appear (typically below the article content) and insert:
liquid{% render 'keystone-faq' %}Save the file.
Recommended Placement
For the best user experience, place the render tag:
- Immediately after the product description
- Immediately after the article content
Example Placement
Product template:
liquid
<div class="product-single__description rte" itemprop="description">
{{ product.description }}
</div>
{% render 'keystone-faq' %}Article template:
liquid
<div class="rte" itemprop="articleBody">
{{ article.content }}
</div>
{% render 'keystone-faq' %}Common Theme Locations
Legacy Shopify Themes
Examples: Debut, Brooklyn, Supply, Simple, Venture
| Template type | Common location |
|---|---|
| Product | sections/product-template.liquid |
| Article | sections/article-template.liquid |
NOTE
Custom themes may organize files differently.
Verify the Installation
After completing the installation:
- Save all modified files.
- Open your storefront.
- Navigate to a product or article that has been optimized and contains FAQs.
- Verify that the FAQ block appears correctly.
If the FAQ Block Doesn't Appear
Check the following:
- The
keystone-faq.liquidsnippet was created correctly. - The
{% render 'keystone-faq' %}tag was added to the correct template. - The product or article actually contains FAQ data.
- Clear your browser cache and refresh the page.
IMPORTANT
Only add {% render 'keystone-faq' %} once per product or article page. Adding it multiple times will display duplicate FAQ sections.
Upgrading to Shopify Online Store 2.0
If you later switch to a Shopify 2.0 theme:
- Remove the render tag from your templates.
- Delete the
keystone-faq.liquidsnippet (optional). - Install the Keystone FAQ block using the standard App Block installation.
TIP
Shopify Online Store 2.0 themes provide easier customization, drag-and-drop app blocks, better compatibility, and automatic app updates. If possible, consider upgrading your theme.
Need Help?
If you run into any issues:
- Email support@key-stone.app
- Contact us through the chat widget inside the Keystone app
When contacting support, please include:
- Your Shopify theme name
- Any error messages
- Screenshots of where you inserted the code
Our team will help you identify the correct template files and complete the installation.