QART favicon
AUDIT REPORT
qart.gallery
May 18, 2026 Conversion Guard
62
out of 100
Needs work
The design is genuinely impressive. A designer built this, and it shows. The biggest gap right now is that some visitors literally cannot check out.
🎨
Exceptional design quality
Among the best Framer + Shopify headless setups out there. The dark aesthetic, Urbanist font, and art photography feel cohesive and premium.
πŸ€–
llms.txt is live and solid
Most stores don't have one at all. QART's llms.txt clearly describes the brand, product categories, and how the platform works. That's a real edge for AI discoverability.
✍️
Product copy with real depth
The artwork descriptions on pages like Blush Moon read like proper art criticism. That kind of specificity builds trust and helps SEO.
πŸ”΄
Checkout flow is broken
Clicking "Checkout" opens shop.qart.gallery in a new tab that fails with a network error. Customers who want to buy cannot complete a purchase right now.
πŸ”΄
Broken Instagram link in footer
`nstagram.com` instead of `instagram.com`. Every visitor who clicks it lands on an error page. On a brand built around art, that's rough.
πŸ”΄
Unfilled template placeholders in JSON-LD
Product pages carry structured data with `{{Industry}}`, `{{Category}}`, `{{Client}}` still in the markup. Search engines and AI crawlers see these as garbage data.

QART sits in an interesting spot: it's a design studio that funds art, or an art gallery with a design studio attached, depending on who's looking. That ambiguity is both the brand's charm and its conversion problem. Right now, first-time visitors have to figure out what to do. The dual identity (Gallery / Studio / Giao) needs a clearer entry point for someone who just wants to buy a print. Fix the checkout first β€” nothing else matters while customers literally cannot pay. After that, the biggest upside is removing friction on the purchase path: no upsells, no social proof at the product level, and a print price of $20.99 that undersells what the art is actually worth. The Giao community angle is genuinely interesting and could become a real retention engine, but right now it's launched before the core commerce is stable.

Homepage β€” desktop

Homepage (desktop)

Homepage β€” mobile

Homepage (mobile 390px)

Artworks collection page

Artworks collection page

Product page β€” Blush Moon

Product page β€” Blush Moon

Product page β€” mobile

Product page (mobile)

Cart drawer β€” after add to cart

Cart drawer (after add to cart)

Page Issue Category Severity Recommendation
All pages Checkout opens shop.qart.gallery in a new tab that crashes with a QUIC network error. No purchase can be completed. Technical πŸ”΄ Critical Check the Frameship configuration. The shop.qart.gallery subdomain either has a DNS/proxy misconfiguration or the QUIC/HTTP3 stack is failing. Test the cart checkout URL directly and confirm the subdomain SSL and routing are working.
All pages (footer) Instagram link points to https://nstagram.com/qart_gallery/ β€” missing the leading "i". Technical πŸ”΄ Critical Fix to https://www.instagram.com/qart_gallery/ in Framer. Two-minute fix with real impact β€” every social click currently 404s.
All product pages JSON-LD structured data contains unfilled template variables: {{'{{'}}Industry{{'}}'}}, {{'{{'}}Category{{'}}'}}, {{'{{'}}Project Type{{'}}'}}, {{'{{'}}Year{{'}}'}}, {{'{{'}}Client{{'}}'}}, {{'{{'}}Location{{'}}'}}. Also, the WebPage @id incorrectly references the studio/projects path instead of the artwork path. Technical / GEO πŸ”΄ Critical Replace all Mustache-style placeholders with real CMS values or remove the template. Fix the WebPage @id to match the actual URL. Validate with Google's Rich Results Test after fix.
All product pages No Product schema (schema.org/Product) with price, availability, or SKU. Prints are purchasable products β€” they need proper ecommerce structured data for rich results eligibility. SEO / GEO πŸ”΄ Critical Add Product schema including offers, price, priceCurrency, availability, and image. This unlocks price rich results in Google search which directly improves click-through rate.
All pages Two React hydration errors (#425, #418) fire on every page load, triggered by the Countdown component. The site warns these can cause "UI flickering or degraded page load performance." Technical 🟑 Warning Update the Countdown Framer component or replace it with a native implementation that renders consistently server-side and client-side. These hydration mismatches are the #1 cause of slow Time-to-Interactive in Framer.
All pages frameship-backend.account-ba7.workers.dev license management script fails on every page load with a QUIC protocol timeout error. It fires twice per page. Technical 🟑 Warning This is a Frameship internal request. Check Cloudflare Workers status and whether the Frameship license is still active. A timeout on a license check script can block or delay rendering depending on how it's loaded.
Homepage Multiple framerusercontent.com images abort loading (ERR_ABORTED) on first load. These are product images in the homepage grid. Technical 🟑 Warning Framer's image CDN lazy-loads aggressively. Add explicit width and height attributes and review lazy-load thresholds in Framer settings. Consider preloading hero images.
All pages All image alt text reads "original art with premium prints qart" β€” the same text on every image regardless of the actual content. SEO / Accessibility 🟑 Warning Write specific alt text for each image (e.g., "Blush Moon lacquer painting by Thao Huynh, 100x100cm, 2025"). This helps both accessibility and image search discoverability.
Homepage No clear primary CTA above the fold for the art-buying audience. The hero area has multiple competing CTAs ("Experience Giao Now", "Learn about Giao", "Browse Artworks") with similar visual weight. CRO 🟑 Warning Pick one primary action for new visitors. For the art commerce side, "Browse Artworks" should be the dominant CTA. For studio leads, have a secondary path. Right now it's unclear what QART wants the visitor to do first.
Product pages No reviews or ratings at the product level. Customers buying art prints from an unfamiliar store need social proof. There's no mechanism to collect or display it. CRO 🟑 Warning Add a review app (Judge.me free plan works with headless Shopify). Even 5-10 reviews on the top-selling prints would meaningfully lift conversion.
Product pages No upsells or cross-sells. After adding Blush Moon to cart, there's no "You might also like" or "Complete the pair" prompt. The cart sidebar shows no upsell offers either. CRO 🟑 Warning At minimum, add related artwork suggestions below the product details. Prints are low-ticket items β€” customers who buy one are likely to buy another from the same artist or series.
Product pages Print pricing starts at $20.99 for an 8"x8". For art with this level of quality, provenance, and description depth, this price point may signal "mass print shop" rather than "curated gallery." CRO 🟑 Warning Test higher price floors. $35–45 for the smallest size and $80–120 for large formats better match the premium positioning. The excellent copy already justifies it.
Cart No free shipping progress bar. No savings summary. No trust badge in the cart sidebar. The cart is clean but misses every standard abandonment-reducing element. CRO 🟑 Warning Add a "Free shipping on all orders" confirmation in the cart (the site does offer free shipping β€” just say so prominently). Add a trust badge row (secure checkout, easy returns).
Collection page 61 artworks listed with no filtering or sorting controls. Price, medium (oil, lacquer), artist, and size filters would dramatically improve browse-to-purchase flow. UX / CRO 🟑 Warning Add at minimum: filter by artist, filter by medium, sort by price. These are standard on art marketplaces. With 61+ works, visitors without filters scroll and leave.
All pages No site-wide search. Framer's search index is configured (the meta tag is there) but there's no visible search input in the navigation. UX 🟒 Info Expose the Framer search. A search icon in the nav header costs nothing to add and helps visitors who know what they're looking for.
All pages Viewport meta tag is width=device-width without initial-scale=1. Minor but technically non-compliant. Technical 🟒 Info Add initial-scale=1 to the viewport meta tag.
Organisation schema The Organization JSON-LD only includes Instagram in sameAs. Facebook, Pinterest, and the LinkedIn links (visible in the footer) are missing. GEO / SEO 🟒 Info Add all social profile URLs to the Organization sameAs array to help AI models and knowledge graphs identify QART as a unified brand entity.
Sitemap Individual artwork pages (e.g., /gallery/artworks/blush-moon) are not in the sitemap. Only top-level pages are listed. SEO 🟒 Info Include all artwork and blog pages in the sitemap. With 61 artworks and 17 news articles, these are exactly the pages that need to be indexed for long-tail traffic.
Logo in schema The Organization logo URL in JSON-LD points to qta.neocities.org β€” a third-party hosting site. If that goes down, the schema logo breaks. Technical 🟒 Info Host the logo image on qart.gallery or Framer's CDN and update the schema URL accordingly.
70
GEO Score / 100
Partially Optimized
βœ“
llms.txt present and descriptive
Live at /llms.txt. Covers features, how the platform works, use cases, and contact. Score: 15/20 β€” missing llms-full.txt and pricing info.
βœ“
AI crawlers not blocked
robots.txt allows all user-agents including GPTBot, ClaudeBot, and PerplexityBot. Good.
βœ“
Conversational, citation-ready product content
Artwork descriptions like Blush Moon are detailed, factual, and written in a register that LLMs can quote and summarize. Genuinely strong here.
βœ“
Organization and WebSite schemas present
Correctly implemented on all pages. Brand name, URL, and description are clearly stated in machine-readable format.
⚠
Structured data depth
BreadcrumbList is in place. But no Product schema, no Review schema, no FAQPage schema, no ArtWork or VisualArtwork type. The template placeholders ({{'{{'}}Category{{'}}'}}) actively corrupt the existing schemas.
⚠
Entity clarity and brand authority
The About page exists and tells the brand story. But the dual identity (gallery + studio) makes it harder for an AI to answer "what is QART?" cleanly. The Organization sameAs only includes one social link.
⚠
Multimodal readiness
Product images have alt text but it's a generic repetition of the same phrase across all images. Descriptive, artwork-specific alt text is needed for image-based AI search and accessibility.
βœ—
No llms-full.txt
No detailed machine-readable version of the full content inventory. Would help AI tools understand the full scope of artworks and artists.
βœ—
No FAQPage or HowTo schema
Questions like "how do I commission an artwork" or "what is Giao" aren't answered in structured schema form. These are exactly the types of queries AI assistants field.
Action Difficulty Impact
Fix the JSON-LD template placeholders and add proper Product / VisualArtwork schemas to artwork pages Medium High
Create llms-full.txt with a complete inventory: all artworks, artists, and their descriptions Easy High
Write unique, descriptive alt text for every artwork image β€” include artist name, medium, year, and dimensions Easy Medium
Add FAQPage schema to the Giao About and Community pages with questions like "What is Giao?", "How do I buy art prints?", "Can I buy original artworks?" Medium Medium
Expand the Organization sameAs array with all social profiles. Add contactPoint and founder fields. Easy Medium
Add schema.org/Person markup for each featured artist (Thao Huynh, Nguyen Cong Hoai, etc.) on their artist profile pages Medium Medium
Write blog posts that directly answer AI queries: "What is Vietnamese lacquer painting?", "How to choose fine art prints for your home?", "Who are emerging Vietnamese contemporary artists?" Hard High
Add all artwork pages and artist profile URLs to sitemap.xml Easy Medium
Awareness (Homepage)
58/100
Visual impact and brand distinctiveness Strong
Value proposition clarity above the fold Unclear
Single dominant CTA Missing
Trust signals (press, awards) None
Social proof (reviews, sales count) None
Page load first impression React hydration errors present
Consideration (Collection + Product)
65/100
Product description quality Excellent
Product image quality and count Strong (3–5 images per artwork)
Size/variant selector usability Clear button-based selectors
Collection page filters and sort None (61 artworks, no filtering)
Customer reviews at product level None
Urgency / scarcity signals None
Purchase (Cart + Checkout)
20/100
Add to Cart feedback Cart drawer opens, count updates
Checkout page loads successfully BROKEN β€” ERR_QUIC_PROTOCOL_ERROR
Free shipping communicated in cart No (offered but not shown in cart)
Cart upsell / cross-sell None
Trust badges in cart None
Guest checkout available Likely (via Shopify default) but untestable
Retention (Post-purchase + Community)
72/100
Email capture / newsletter Footer form present
Community / membership (Giao) $8/mo plan, launching soon
Blog / editorial content Giao.News has 17 articles
Artist profiles for brand loyalty 5 detailed artist profiles
Post-purchase upsell flow None
Customer account portal account.qart.gallery exists
App / Service Purpose Performance Impact Est. Monthly Cost Verdict Savings if removed
Framer Site builder / frontend Medium β€” large JS bundle, React hydration ~$35–115/mo Keep Core platform
Frameship Shopify headless connector for Framer Medium β€” license check script failing ~$29–79/mo Keep (fix the errors) Core infrastructure
Google Analytics 4 + GTM Web analytics and tag management Low β€” async loading Free Keep Free, essential
Facebook Pixel Meta ads tracking and retargeting Medium β€” fbevents.js fires on every page Free (ad spend separate) Keep (if running Meta ads) Free but adds weight
Ahrefs Analytics SEO tracking Low β€” single event call Included in Ahrefs plan (~$99–399/mo) Review Keep if actively using Ahrefs SEO tools
Cal.com Discovery call booking (embedded inline) Medium β€” inline embed loads full cal.com app Free–$15/mo Keep Good for studio leads
Product Reviews app Customer reviews on artwork pages Low $0 (Judge.me free plan) Missing β€” Add Free plan available
Upsell / Cross-sell app Related artworks, bundle offers, cart upsells Low–Medium $0–$30/mo (ReConvert or similar) Missing β€” Add Could add 15–25% to AOV
There are no obvious "wasteful" apps to cut here. The stack is lean. The bigger opportunity is adding the missing pieces: a review app (free) and a lightweight upsell solution ($0–30/mo). If you're paying for Ahrefs purely for analytics rather than the full SEO suite, that's the one plan worth revisiting β€” GA4 + Google Search Console covers most of the same ground at no cost.
$0
Monthly savings available
+AOV
Potential revenue gain from upsells
+CVR
Conversion lift from reviews
$99+
Ahrefs β€” review if needed
Site setup
β€Ί Built on Framer (generator: 27b79d7). Using Shopify Storefront API 2025-07 via Frameship.
β€Ί Shopify store: zqriui-gb.myshopify.com β€” headless, not using a standard Shopify theme.
β€Ί Custom imgproxy setup at imgproxy.qart.gallery for image optimization β€” good choice.
β€Ί Google Fonts (Urbanist) loaded via preconnect β€” correctly implemented.
β€Ί Lenis smooth scroll library in use β€” adds ~10kb but good UX trade-off for this aesthetic.
Issues to fix
β€Ί React hydration errors #425 and #418 on every page load (Countdown component). Causes visible render flicker.
β€Ί shop.qart.gallery subdomain fails with QUIC/HTTP3 errors. The checkout cannot complete in a standard browser without QUIC.
β€Ί Frameship license management script (frameship-backend.account-ba7.workers.dev) times out on every page β€” doubled request firing suggests a retry loop.
β€Ί Multiple images abort loading on homepage on initial render β€” likely a race condition in Framer's lazy-load implementation.
β€Ί JSON-LD structured data template system not connected to Framer CMS variables β€” placeholders published live by mistake.
β€Ί Organization logo hosted on neocities.org (third-party) β€” fragile dependency in schema markup.
β€Ί Viewport meta missing initial-scale=1.
β€Ί Sitemap omits all individual artwork and artist pages β€” 61+ high-value URLs not submitted for indexing.
#121212
Primary background
#F5F5F5
Primary text / foreground
rgba(245,245,245,0.15)
Overlay / card surface
#C9A96E (inferred)
Gold accent (from art imagery)
Primary font
Urbanist
Loaded via Google Fonts, weights 300–800. Clean geometric sans-serif that complements the minimal art direction.
Fallback
System sans-serif
Visual coherenceExcellent
Typography consistencyStrong
Messaging / tone of voiceGood, needs clarity
Commerce–gallery integrationNoticeable seams
The brand looks and feels cohesive across the Gallery and Studio sections. The Giao section has its own sub-identity that works but can feel disconnected for first-time visitors who arrive through the art or studio side.
Quick wins
1–2 days
1. Fix the Instagram link in the footer (nstagram.com β†’ instagram.com). 2-minute fix.
2. Investigate and fix the shop.qart.gallery checkout QUIC error. Test on multiple browsers. If QUIC is the issue, configure a fallback to HTTP/2 on the subdomain.
3. Remove or fix the JSON-LD template placeholders on all pages. Either delete the Studio-project template from artwork pages or connect the Mustache variables to CMS fields.
4. Add "Free shipping on all prints" confirmation text inside the cart drawer. Already true β€” just needs to be visible there.
5. Expand sitemap.xml to include all individual artwork, artist, and news pages.
6. Create /llms-full.txt with the full list of artworks, artists, and descriptions for AI crawlers.
Medium-term
1–4 weeks
1. Add proper Product schema (with price, availability, image) to all artwork pages. Fix the WebPage @id to reference the correct URL.
2. Install Judge.me (free plan) and collect the first 10–20 reviews. Email past buyers directly if you have their addresses.
3. Add collection filtering on the artworks page: filter by artist, medium, and size. Sort by price. With 61 works this is now a usability need, not a luxury.
4. Write unique, specific alt text for every artwork image. Include artist name, title, medium, year, dimensions. One sentence per image.
5. Add related artwork suggestions below the fold on product pages. Even a manual curated "You might also like" grid per artist will do the job.
6. Test a price increase on prints β€” try $35 base for the smallest size. The product descriptions already justify a premium price point.
7. Add a clear homepage value proposition that settles the gallery-vs-studio identity question for a new visitor in under 5 seconds.
Strategic
1–3 months
1. Launch Giao Community with a strong onboarding email sequence. This is your best retention and word-of-mouth driver β€” get the launch experience right before scaling ads again.
2. Publish SEO-targeted blog posts on Giao.News that answer AI-searchable questions: "What is Vietnamese lacquer painting?", "How to frame art prints at home?", "Contemporary Vietnamese artists to know."
3. Add Person schema to each artist profile page. Build proper entity pages for Thao Huynh and Nguyen Cong Hoai with biography, exhibition history, and social links β€” this is how AI tools learn to cite these artists.
4. Build a limited-edition or "Artist Drop" mechanic into the commerce flow. Scarcity (only 50 prints available, countdown) suits both the gallery aesthetic and conversion psychology.
5. Before running paid ads again, confirm the full funnel β€” add to cart β†’ cart β†’ checkout β†’ order confirmation β€” works end to end without errors. The prior ad campaign probably failed partly because of the checkout issues.
6. Explore original artwork purchase flow improvements: right now it's a contact form. A proper enquiry-to-offer workflow (e.g., reserve with a deposit) would help serious collectors act faster.