How to Embed a TikTok Feed on Shopify (Step-by-Step)
How to add a shoppable TikTok video feed to a Shopify store with theme app blocks, what TikTok's official APIs and embed player do and don't give you, and the video-loading checks that stop a TikTok carousel from slowing your product pages.
In this article
TikTok content does a job static photos can't: it shows a product moving, worn, used, unboxed. It is also the heaviest thing you can put on a product page. A TikTok feed on Shopify is a normal theme install with one extra discipline, which is making sure video only downloads when a shopper is about to watch it.
Three ways to get TikTok onto Shopify
TikTok's embed code
Copy the embed code from a video on TikTok and paste it into a Custom Liquid section or a blog post.
Wins at
- Free, official, no app
- Always shows TikTok's current version of the video
Struggles with
- One player per video, each loading TikTok's own script
- No product tagging or add-to-cart
- Hard to control layout and loading on mobile
Build on TikTok's Display API
A developer app that uses Login Kit plus the Display API to list your videos.
Wins at
- Full control of design
- Official data source for your own account
Struggles with
- Needs a TikTok developer app, Login Kit and approved scopes
- Centred on the logged-in account's own videos
- You build tagging, player and caching yourself
A shoppable video app
An app that imports TikTok videos, lets you tag products and installs through theme app blocks.
Wins at
- Product tags and add-to-cart on the video
- Theme editor install, no code
- Controlled video loading
Struggles with
- Subscription cost
- You still need rights for creator content
TikTok's developer documentation describes the Display API as three endpoints (user info, video list and video query) that let you "display a TikTok user's profile and videos on your platform", with the user granting `user.info.basic` and `video.list` through Login Kit. That makes it a good fit for your brand account and a poor fit for gathering other creators' content, which is where hashtag import and rights requests come in (see TikTok UGC strategy for ecommerce).
Step by step with Idukki
Shoppable TikTok feed on Shopify
- 01
Install the app
Install Idukki from the Shopify App Store so its theme blocks are available in your theme editor.
- 02
Add TikTok as a source
In the dashboard, add TikTok and choose a username (your brand or an approved creator) or a hashtag.
- 03
Curate and tag
Build a collection, drop anything off-brand, and tag the products that appear in each video. Where your plan includes Video Hotspot Tagging, you can pin a product to the moment it appears.
- 04
Add the blocks
Add Shoppable Video Reels to the homepage and Product Page UGC to the product template, from the publish step's theme editor links.
- 05
Verify loading
Publish, then check on a phone and in DevTools that off-screen videos aren't downloading.
Product Page UGC is the block to prioritise. It passes the current product's ID to the widget, so each product page shows only the videos tagged to that product, with no per-product setup. When Idukki has recorded that a product has nothing tagged, the block skips rendering entirely rather than showing an empty frame. Shoppable Video Reels is the homepage and landing-page format. Both blocks have a Widget ID setting (leave it empty for your default widget) and a lazy-load setting that is on by default.
If your theme is a vintage (pre-2.0) theme, app blocks won't appear: Shopify requires JSON templates and sections that accept `@app` blocks. Upgrade the theme, or paste the embed code into a custom Liquid section and own it from then on.
Tagging video so it sells
A video tag should match what the viewer can see at that moment. For a try-on haul, tag each item when it is on screen rather than listing every product at the start. Keep it to the products actually shown; a panel of eight products under a 15-second clip reads as an advert. For the mechanics of making short-form video shoppable, see making Reels and TikToks shoppable on Shopify and the shoppable video overview.
Performance: the step that decides whether it helps or hurts
A ten-video carousel where every video preloads can download many megabytes before the shopper has scrolled, which hurts Largest Contentful Paint on mobile. The fix is simple in principle: an HTML video element with `preload="none"` tells the browser not to download it in advance (MDN notes it is a hint, which browsers generally follow). Idukki's widget follows that rule by layout: in carousel and reel layouts only the active slide (and its neighbours) get `preload="auto"`, grid tiles get `preload="none"`, and video opened in the full-screen modal loads fully.
Check it yourself in two minutes. Open a product page in Chrome, open DevTools, and run `document.querySelectorAll('video[preload="auto"]').length` in the Console. A small number (a handful at most) means off-screen videos are waiting. Then open the Network panel, filter to Media, reload, and confirm you aren't downloading videos you can't see. Repeat PageSpeed Insights on three product pages and compare with your pre-install baseline. Core Web Vitals and UGC widgets explains what to look for in the report.
Layout shift is the other risk. A reels carousel that appears late and pushes the buy box down is worse than no carousel. Reserve the carousel's height in the section settings or with the block's custom CSS class, and keep lazy loading on for anything below the fold.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Mobile PageSpeed score drops sharply after install | Off-screen video preloading, or TikTok embed scripts per video | Use one feed widget instead of multiple TikTok embeds; confirm off-screen videos use preload none. |
| Reels block not in the Add block list | Vintage theme or section without app block support | Try a different section or move to an Online Store 2.0 theme. |
| Videos show but have no products | Nothing tagged yet | Tag products per video in the dashboard; the widget can't infer them. |
| New TikToks aren't appearing | Source not refreshed, private video, or wrong feed type | Confirm the account or hashtag is public and the source is set to the right username or hashtag. |
| Video won't autoplay with sound | Browsers generally only allow autoplay when audio is muted or the visitor has interacted with the page | Expect muted autoplay; sound starts on tap. |
FAQs
How do I add a TikTok video to a Shopify product page?
For a single video, copy TikTok's embed code and add it via a Custom Liquid block on the product template. For product-specific feeds across your catalogue, use an app block that filters videos by product, so each PDP shows only its own tagged videos.
Does TikTok have an official API for showing videos on my site?
Yes. The Display API lets an app list and display a user's public videos after that user authorises it with the user.info.basic and video.list scopes. It is centred on the authorising account's own content.
Will a TikTok feed slow down my Shopify store?
It can. Video is heavy, and multiple official embeds each load TikTok's player. Use a single feed widget that only loads the visible video, reserve the section's height, and compare PageSpeed Insights before and after.
Can I show TikToks that customers made about my products?
Only with the creator's permission. Importing by hashtag makes the video available to curate; it doesn't license it for your store. Request rights and keep the approval on file.
Is TikTok Shop the same as a TikTok feed on my store?
No. TikTok Shop sells inside TikTok. A feed on your Shopify store brings TikTok content to your own product pages, where you keep the checkout and the customer data.
Sources
- 1TikTok for Developers: Display API overview · User info, video list and video query endpoints; user.info.basic and video.list scopes
- 2TikTok for Developers: Display API, get started · Requires Login Kit and approved scopes
- 3Shopify.dev: Configure theme app extensions · App block support requires JSON templates and @app sections
- 4MDN: the video element, preload attribute · preload="none" indicates the video should not be preloaded
- 5MDN: Autoplay guide for media · Autoplay is generally allowed only when muted or after user interaction
- 6web.dev: Cumulative Layout Shift (CLS) · Good CLS threshold of 0.1 or less
More from Rohin Aggarwal
- Strategy
What it actually costs a DTC brand to not run a UGC program
Skipping UGC gets framed as a missed upside. It is better understood as an ongoing cost: a competitor building a trust and creative advantage every week you do not, compounding.
- Strategy
UGC vs. paid influencer content: the real cost per usable asset
A creator fee is only part of what an influencer asset costs once usage rights and revisions are counted. A grounded comparison against what a UGC asset really costs, and when each wins.
- Strategy
What one viral customer video is actually worth, beyond the view count
View count measures who saw a video, not what it earned you. A framework for pricing a viral customer clip: the media it replaced, the ads it can seed, and where the value quietly evaporates.