FeaturesPricingBlogResourcesAboutContact
Sign inGet Started Free

How to Embed a Facebook Feed on Your Website: Add Your Facebook Page (2026)

I wanted to know whether Facebook's free native Page Plugin is actually good enough to embed a Facebook feed on your website in 2026. So instead of taking anyone's word for it, I installed it on a blank page, inspected what it loads, measured it in DevTools, and ran it against a CollectSocials feed on the identical setup. What I found surprised me: the "free" plugin is broken in ways nobody mentions.

Short answer: a Facebook feed widget is a tool that embeds your public Facebook Page posts (text, photos, and videos) directly on your website and keeps them updated automatically. You can do it two ways. Method 1 is Facebook's free, native Page Plugin: paste your Page URL into Meta's configurator, copy the generated HTML, and embed it. Method 2 is a third-party widget like CollectSocials, which connects your Page and gives you a full-width, branded, responsive feed with one snippet. Method 1 is fastest to reach for; Method 2 is the one that actually performs. Below I test both.

Quick summary of what I measured in June 2026, in an incognito window with no extensions: on an identical blank page, the native Page Plugin dropped six Facebook tracking cookies before anyone clicked anything, pulled in the Facebook SDK plus a cascade of obfuscated scripts, and couldn't even be scored by Lighthouse: every metric returned NO_FCP. The CollectSocials feed, on the same setup: zero Facebook cookies, and Lighthouse ran normally. The full teardown is below.

Facebook Page PluginFacebook Page Plugin rendered as a narrow boxed widget capped at 500px with a See more on Facebook button
CollectSocialsCollectSocials full-width branded Facebook feed in a dark carousel layout with a live feed indicator
The same test file, two embeds. Left: the native Page Plugin, a narrow box capped at 500px ending in a See more on Facebook button. Right: CollectSocials, full width and on-brand. The Pages are not the same one, because the plugin shot renders a public Page (National Geographic) and ours renders our own demo brand, so read this as a comparison of two rendering approaches rather than of one Page twice. Both tested June 2026.

How to Embed a Facebook Feed on Your Website

The fastest reliable way to add your Facebook Page to your website, in six steps:

  1. Go to CollectSocials and create a new feed from the dashboard.
  2. Click "Add Source" and select Facebook from the platform list.
  3. Connect your Facebook account through Meta's OAuth flow and pick the Page you want to display.
  4. Moderate your posts on the Collect page: pin, hide, edit, or filter. New posts appear by default, so hiding is the working verb; switch on Pre-approve posts if you would rather nothing appear until someone approves it.
  5. Open the Design Studio, pick a layout, and style it with a ready-made template or your own custom theme.
  6. Click "Get Code," paste the embed snippet into your site's HTML, and test on mobile.

That's the short version, and unlike the native plugin it took me one snippet and worked on the first try. The full walkthrough with screenshots is further down, but first, the teardown that explains why I stopped using the Page Plugin.

Why a Facebook Feed Still Matters in 2026

Facebook is still where a huge share of businesses post updates, run promotions, and answer customers. An embedded Facebook feed pulls that activity onto your site, so visitors see you're active right now, not last quarter. It works for social proof (real posts with real likes and comments), local presence, and keeping pages fresh without writing new web copy. Pair it with reviews or other networks and it becomes a unified feed that builds trust from one widget.

What this shows

The animation shows post cards leaving a Facebook Page card, crossing a sync bridge, and settling into a widget grid on your website, ending on a live indicator. That is the model: new Facebook posts appear on your site automatically, without you copying anything across by hand.

Ready to aggregate your social content?Start your free 7-day trial, no credit card required.
Start Free Trial

I Tested Facebook's Native Page Plugin: Here's What It Actually Does in 2026

I ran this entire test in June 2026. I installed the Page Plugin on a blank HTML page, inspected what it loads in DevTools, measured the network weight and cookies, ran Lighthouse, and then put a CollectSocials Facebook feed through the exact same setup. Here's everything I found, step by step.

Getting the Code Was the First Problem

I went to Facebook's Page Plugin configurator on the Meta developer site and started entering Page URLs. When I entered a personal profile URL, the Get Code button just wobbled and did nothing: no error, no explanation. When I entered a verified Meta Business Suite page that had app-level permission restrictions, same silent failure. When I typed a Page URL without the https:// prefix (just facebook.com/...), it threw "The href entered is not recognized as a valid URL" even though the live preview rendered the Page correctly right below the error. And once I finally had a valid full URL in place and clicked Get Code, a modal opened with a spinner that spun indefinitely and never delivered any code at all. The native tool's code generation was simply broken during my testing.

URL without https:// → errorFacebook Page Plugin configurator showing the error The href entered is not recognized as a valid URL while the preview still renders the page
Get Code → infinite spinnerFacebook Page Plugin Get Code modal showing a spinner that never returns any embed code
Facebook's own configurator failed repeatedly: it rejects URLs without the https:// prefix even while previewing them, and the Get Code modal spun forever without returning a snippet (June 2026).

I Had to Build the Embed Manually

Since the configurator wouldn't hand over code, I wrote the standard SDK loader and fb-page div myself and pointed it at a public Page. Loading it from a local file:// did nothing, because Facebook's SDK refuses to run from file:// for security reasons, so I served it over a local server at localhost:8080. This is the exact HTML the Page Plugin needs (the SDK loader plus the fb-page div) if you want to embed a Facebook feed in raw HTML yourself:

<!-- 1. Load the Facebook JavaScript SDK once, near <body> top -->
<div id="fb-root"></div>
<script async defer crossorigin="anonymous"
  src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v23.0">
</script>

<!-- 2. Drop this where you want the feed to appear -->
<div class="fb-page"
  data-href="https://www.facebook.com/YourPage"
  data-tabs="timeline"
  data-width="500"
  data-height="700"
  data-small-header="false"
  data-hide-cover="false"
  data-show-facepile="true">
</div>

Note the data-width="500": that's the hard maximum. Once live, the plugin rendered as a narrow scrollable box: it loaded only five posts, captions were truncated with "…", clicking a post just bounced me out to Facebook, videos couldn't play inline, and the whole thing ended with a "See more on Facebook" button. Its entire job is to pull visitors off your site and back to Facebook.

One point in the plugin's favor, to be fair: the Page Plugin can embed any public Facebook Page, whereas CollectSocials requires you to own or admin the Page you're embedding. That's a Meta API restriction, not a CollectSocials limitation, and for a business embedding its own Page it doesn't matter, but it's a real difference and worth noting.

The Width Trap: 180px Minimum, 500px Maximum

Meta's own docs state the plugin's width is locked between a minimum of 180px and a maximum of 500px, defaulting to 340px. I confirmed it. I set data-width to 500, dropped the widget into a full-width section, and maximized the browser to 1179px wide. The plugin sat as a narrow box on the left with roughly 680px of dead grey space to the right (1179 − 500 = 679). There is no setting to make it fill a wide container: it simply refuses to grow past 500px.

DevTools responsive mode at 1179px wide showing the Facebook Page Plugin as a narrow box on the left with empty space to the right, and data-width 500 visible in the DOM panel
DevTools responsive mode at 1179px, with data-width="500" visible in the DOM panel on the right. The plugin caps out and leaves ~680px of dead space (1179 − 500). There is no option to make it fill the container. (June 2026)

The Resize Failure

Meta's docs also admit the plugin "will determine its width on page load" and "will not react to changes to the box model after page load." I tested this in responsive mode. At 1179px wide it stayed frozen at its initial narrow render and never expanded. At 184px it squished down to its 180px minimum. At 83px it broke entirely: text stacked vertically and the whole widget became unusable. This is exactly why people report the plugin looking broken on mobile or after an orientation change: it measures once and never adjusts.

184px: squished to minFacebook Page Plugin squished to its 180px minimum at a 184px viewport
83px: brokenFacebook Page Plugin completely broken at 83px with text stacked vertically
The plugin measures its width once on load and never re-flows (the 1179px freeze is pictured above): squished at 184px, unusable at 83px. (June 2026)

The Cookies: This Is the One That Matters Most

I opened DevTools → Application → Cookies. The localhost domain only had my own Google Analytics cookies (_ga and two _ga_ variants), which are mine, not Facebook's. But under the .facebook.com domain, loaded purely by the plugin, with zero interaction from me, I found six Facebook cookies:

  • datr: browser identification, expires 2027
  • fr: Facebook's primary advertising cookie, expires 2026
  • ps_l and ps_n: login/session state detection
  • sb: browser security, expires 2027
  • wd: which literally recorded my screen dimensions (1470×835) and sends them back to Facebook

All six were set on page load, before any visitor clicks anything. Under the GDPR and similar rules, that's exactly the kind of third-party tracking that's supposed to sit behind a consent banner. The "free" plugin can quietly turn into a compliance problem on any European-facing site. Use of the plugin is also governed by the Meta Platform Terms.

Page Plugin: 6 Facebook cookiesDevTools cookies panel showing six .facebook.com cookies set by the Facebook Page Plugin on load: datr, fr, ps_l, ps_n, sb, and wd recording screen dimensions 1470x835
CollectSocials: no Facebook cookiesDevTools cookies panel showing no facebook.com domain at all with the CollectSocials widget, only the site's own analytics cookies
Left: the Page Plugin adds a .facebook.com cookie store holding six tracking cookies (datr, fr, ps_l, ps_n, sb, wd), all set on load. Right: the CollectSocials widget adds no .facebook.com domain at all: only the site's own analytics. (June 2026)

The Network Weight

I ran the Network tab in an incognito window (no extensions) with cache disabled, on a blank page carrying nothing but the Page Plugin. The Facebook SDK loads in two parts, a small loader plus the main sdk.js, and then pulls in a cascade of obfuscated Facebook scripts (one was 130 kB, another 96.2 kB, another 68.5 kB) and a request to a Facebook logging endpoint that returned a 404. My page's own HTML was ready in 25ms; everything after that was Facebook.

One honest caveat: the transfer total varies by Page and session. Whatever images a Page is currently serving get pulled in unoptimized, so a Page with heavy cover or post images moves far more data than a sparse one, which is exactly why no single number here would survive contact with your Page. The SDK and script overhead is the constant, no matter which Page you embed, and that overhead is the part that sets the tracking cookies and breaks Lighthouse.

Page Plugin: network tabDevTools network tab in incognito for the Facebook Page Plugin, showing the Facebook SDK pulling in a cascade of obfuscated scripts and a logging request that returned 404
CollectSocials: network tabDevTools network tab in incognito for the CollectSocials Facebook feed, showing the widget fetching properly-sized images from the connected Page
Same blank page, same incognito browser, no extensions. The Page Plugin loads the Facebook SDK in two parts, then a cascade of obfuscated scripts, and fires a logging request that returns 404: none of it yours, none of it optional. CollectSocials fetches your own Page's properly-sized images instead of whatever Facebook serves unoptimized. (June 2026)

Lighthouse Couldn't Even Score It

I tried to run Lighthouse on both mobile and desktop. Both failed with NO_FCP errors: "the page did not paint any content." The SDK loads so asynchronously that Chrome's own performance tool can't capture a First Contentful Paint. The native plugin is literally unmeasurable by Google's standard performance tool. (When I removed the plugin and tested just my heading, Lighthouse scored fine, confirming it's the plugin, not my page, breaking measurement.) The CollectSocials feed, on the same page in the same incognito window, was fully measurable.

Lighthouse report failing with NO_FCP errors for the Facebook Page Plugin page
Lighthouse could not produce a result for the Page Plugin at all: every metric returned NO_FCP. The CollectSocials feed was measurable on the identical page in the same incognito window. (June 2026)
Why there is no score next to that failure. A Lighthouse number for our own widget would be the least honest thing in this article. We measured the same page at 97 to 100 or 79 to 84 in one sitting, changing nothing but whether a feed image sat above the fold, so any single figure we published would be a figure you could not reproduce. The claim worth making is the binary one: one embed could be measured and the other returned no First Contentful Paint at all.

I recorded the whole thing so you don't have to take my word for it. In this video you can watch Facebook's configurator fail to generate code, the plugin render at its 500px cap, Lighthouse fail with a NO_FCP error live, and then a CollectSocials Facebook feed go full-width and stay fully measurable, where the plugin returned no score at all, on the same page in the same browser session:

The Styling Test: Zero Design Control

I injected aggressive CSS into my page: forced fonts to red Georgia serif, set a purple background, killed all border radius and shadows. The page around the plugin changed completely; the plugin itself stayed pixel-for-pixel identical, because it renders inside an iframe my CSS can't reach. To be fair, that iframe isolation is intentional and it does protect the plugin from being broken by your stylesheet. But the flip side is the real story: you get zero design control. Whatever Facebook decides the widget looks like is what your visitors see: no colors, no fonts, no layout, no card styling.

A test page with an injected purple background, while the Facebook Page Plugin inside its iframe stays pixel-for-pixel unchanged
The page's background forced to purple by my injected CSS; the plugin (inside its iframe) ignored all of it. Isolation protects it from your CSS, but it also means you can't style it at all. (June 2026)

Mobile

On iPhone 12 Pro emulation the plugin filled the phone width, which looks fine at a glance, but the Page name broke mid-word across three lines (National / Geograp / hic) and the bio truncated. The CollectSocials feed, on the same device, filled the viewport edge to edge with no text-wrapping issues in either a carousel or a list layout. Both shots sit on a blank test page, so the empty space below either widget is the test page rather than the embed, and there is more of it under ours: the wrapping is the difference here, not the vertical footprint.

Page Plugin on iPhone 12 ProFacebook Page Plugin on iPhone 12 Pro emulation with the Page name National Geographic breaking mid-word across three lines and the bio truncated
CollectSocials on iPhone 12 ProCollectSocials Facebook feed on iPhone 12 Pro emulation filling the viewport edge to edge
Same device, same test. The plugin breaks the Page name mid-word across three lines and truncates the bio; the CollectSocials carousel fills the width with its captions intact. Both sit on a blank test page, so ignore the white below either one. (June 2026)
My conclusion: For a tiny sidebar "Find us on Facebook" box, the Page Plugin is fine: it's free and quick. For anything that needs to be full-width, on-brand, responsive, moderated, fast, or combined with other platforms, the 500px ceiling, locked styling, a cascade of tracking scripts, and six cookies-before-consent get in your way. Facebook built it to pull people back to Facebook, not to look good (or perform well) on your site.

How to Actually Add Your Facebook Page (CollectSocials)

After the Page Plugin boxed me into 500px and a cascade of Facebook scripts I did not ask for, I used CollectSocials to add my Facebook feed instead, and it rendered full-width and on-brand on the first try. No Facebook App ID, no SDK loader, no cookie banner triggered by the widget. Connect your Page, pick a layout, paste one snippet. Here's the complete process with screenshots from the same June 2026 test.

Step 1: Create a New Feed

After signing up, you land on the dashboard. Create a new feed for your Facebook content. You can run multiple feeds: one for your main Page, another for a campaign or a specific page on your site.

CollectSocials dashboard showing feed management and a create-new-feed option
The CollectSocials dashboard: create and manage multiple feeds, each with its own sources and design. (June 2026)

Step 2: Select Facebook as Your Source

Click "Add Source" and pick Facebook from the platform chooser. Facebook is available on every CollectSocials plan, including the free plan (one connected source, three through the 7-day trial), and it's not locked behind a premium tier. CollectSocials also supports Instagram, YouTube, Google Reviews, TikTok, X/Twitter, Pinterest, Tumblr, RSS, and Vimeo, so you can combine them in one feed later.

CollectSocials Choose Platform grid listing Google Reviews, YouTube, X / Twitter, Facebook, Instagram, TikTok and more
The Choose Platform grid, with Facebook among the tiles. You can combine multiple platforms in a single feed for a unified social wall.

Step 3: Connect Your Facebook Page

Click "Connect Facebook" to authenticate through Meta's OAuth flow (you'll need to be signed in to the Facebook account that manages the Page), then select the Page you want to display. CollectSocials never stores your password: it uses a secure token you can revoke anytime from your Facebook settings. Your Page's posts (text updates, photos, videos, and links) import automatically. Note that CollectSocials connects Pages you own or admin, a Meta Graph API rule, which for a business embedding its own Page is exactly what you want.

1. Choose the content typeCollectSocials Facebook content-type chooser asking what type of content to collect, with a Page card for importing posts from your Facebook Page and a Page Mention card beside it
2. Click Connect FacebookCollectSocials Add Facebook Page screen with a Connect Facebook button and a note that it uses a secure OAuth 2.0 connection and never stores your password
3. Approve Meta's consent screenMeta OAuth consent dialog asking to continue as the signed-in Facebook account, noting CollectSocials will receive your name and profile picture, with Not Now and Continue buttons
4. Select the Page you manageCollectSocials Select Facebook Page step after the Meta consent, listing a managed Page with its Page ID and a Continue button
The full Facebook connect flow in CollectSocials: choose the content type, click Connect Facebook, approve Meta's consent screen, and select the Page you manage. (June 2026)

Step 4: Moderate and Curate Your Posts

Once connected, your posts land on the Collect page. This is where CollectSocials solves the biggest gap in the native plugin: control. Pin the posts you want featured, hide the ones that don't belong on your site (expired event reminders, casual polls, off-brand chatter), filter by source, and edit post text inline to add context for a website audience.

There are two modes here and it is worth knowing which one you are in. By default the feed shows what your Page publishes and hides what you reject, which is what most business pages want: post to Facebook, and the website keeps up on its own. If you would rather nothing reached the site unseen, switch on Pre-approve posts in the feed's settings and the widget serves only what someone has explicitly approved, with new Facebook posts waiting in the queue until they do.

If more than one person manages your feeds, you can invite your team: unlimited team members on every plan, including Free, so the person who runs the Facebook Page and the person who owns the website do not have to share one login. The native Page Plugin has no concept of moderation, let alone team access.

CollectSocials Collect page showing imported Facebook posts as cards with pin and remove controls and feed, network, and source filters
The Collect page: pin your best Facebook posts, remove ones that don't fit, and filter by feed, network, or source. The native plugin offers none of this. (June 2026)

Step 5: Design Your Widget in Design Studio

This is the part the native plugin can't touch. In the Design Studio you pick from a wide range of layouts (standouts include Marquee, Masonry, Carousel, and Coverflow) and then style them. The real differentiator is the styling: start from a ready-made template, or open the custom theme builder and build your own theme from scratch (colors, fonts, borders, shadows, spacing, and card styles). Because you can save your own themes, you get effectively unlimited looks, all matched to your brand instead of Facebook's.

Preset layouts + Browse TemplatesCollectSocials Design Studio with the preset layout list on the left, a Browse Templates button above it, and a live Facebook feed preview
Custom theme builderCollectSocials custom theme builder editing colors, fonts, borders, and card styles for a Facebook feed
Pick a preset layout from the list, open Browse Templates for ready-made looks, or build your own theme from scratch in the custom theme builder: colors, fonts, borders, shadows, spacing, and card styles. The Page Plugin offers none of this. (June 2026)

Designing a Facebook feed that fits your brand

The animation cycles through layout and theme combinations applied to a Facebook feed. Unlike the native Page Plugin's fixed Facebook styling, this shows how the same set of posts can be restyled (colors, card shape, spacing, and layout) to match the look of your own site.

Step 6: Preview, Get Your Code, and Check Mobile

Click "Preview" to see exactly how the feed will look, toggling between desktop, tablet, and mobile. When it's right, click "Get Code" and set "Where are you installing your widget?" to your platform before you copy, because the snippet differs by host (the platform section below covers each one). On the script hosts the feed renders inside a Shadow DOM, so its styles are isolated from your site's CSS and nothing conflicts in either direction; on Wix and Squarespace the same isolation comes from a self-resizing frame instead. Either way it stays responsive at any width. I tested it on iPhone 12 Pro in both a carousel and a vertical list layout; both filled the viewport edge to edge.

Carousel layout (mobile)CollectSocials Facebook feed on iPhone 12 Pro in carousel layout filling the viewport
List layout (mobile)CollectSocials Facebook feed on iPhone 12 Pro in vertical list layout filling the viewport
The same Facebook feed on iPhone 12 Pro in two layouts, both fully responsive and edge to edge with no text-wrapping issues. (June 2026)

Facebook Feed Pricing on CollectSocials

Unlike platforms with expensive APIs, a Facebook feed runs on every CollectSocials plan, including the free plan(one connected source, three through the 7-day trial), so the feed itself never expires behind a paywall. The difference is design: the free plan's Design Studio covers seven of the forty layouts, and all sixteen themes plus the theme builder, while the 7-day trial unlocks the full Design Studio, every layout plus the custom card builder, so you can design and preview your entire widget before deciding, no credit card required. Paid plans keep the full Design Studio and add more sources, higher view limits, and faster sync:

  • Free ($0): Facebook feed on one connected source, seven layouts and all sixteen themes, syncing once a day.
  • Pro ($29/mo): full Design Studio, hourly sync, and up to 30,000 page views per month.
  • Business ($59/mo): more sources, sync every fifteen minutes, and unlimited page views per month.

Every plan, including Free, also includes unlimited team members for moderating and managing your feeds.

A note on "live": these are auto-updating feeds, not real-time streams. Your widget pulls new Facebook posts at regular intervals: you never re-embed or manually refresh.

Ready to aggregate your social content?Start your free 7-day trial, no credit card required.
Start Free Trial

Native Page Plugin vs CollectSocials: What I Measured

Everything in this table comes from my own June 2026 test: the same public Facebook Page, embedded on identical blank pages, measured in the same DevTools session.

What I measuredFacebook Page PluginCollectSocials
Script files loaded Facebook SDK + cascade 1
Images served Unoptimized, whatever the Page serves Properly sized
Facebook cookies before consent6 (datr, fr, ps_l, ps_n, sb, wd)0
Lighthouse (mobile) Failed: NO_FCP (unscorable) Scored normally
Maximum widthCapped at 500pxFull-width, any container
Responsive resizeFrozen on page loadFully responsive
Design controlNone (locked iframe)Layouts, templates, custom theme builder
ModerationNonePin, hide, filter, inline edit
Multi-platformFacebook onlyFacebook, Instagram, Google Reviews, YouTube, and more
CostFreeFree plan (1 source); paid from $29/month

How to Embed a Facebook Feed on WordPress, Squarespace, Wix, Shopify, Webflow, and Google Sites

Before you paste anything, set "Where are you installing your widget?" in the Get Code dialog to your platform. This is not a convenience: the snippet itself changes. WordPress, Webflow and plain HTML get a script tag; Shopify gets that script inside a page-width container so a theme's flex rules cannot squeeze it; Wix and Squarespace get a self-resizing iframe, because both sandbox or strip custom scripts; and Google Sites gets a URL rather than any code at all. Pick the wrong one and the feed either renders narrow or never appears, with no error message either way. Here is where each payload goes.

WordPress (Gutenberg Editor)

WordPress is the one platform where there are two routes, because it is the one platform we ship our own installer for. Take the snippet if you want the feed live in a minute; take the plugin if the page is going to get traffic.

Route 1: the Custom HTML block.

  1. Open the page or post where you want the Facebook feed.
  2. Click the + block inserter and search for "Custom HTML."
  3. Add a Custom HTML block and paste your embed code into it.
  4. Click "Preview" in the block toolbar to verify it renders, then publish.

Route 2: the CollectSocials WordPress plugin, from the official WordPress.org directory. Install it, paste the feed key into the block or the [collectsocials] shortcode, and the plugin copies your Facebook posts and your published design into your own WordPress database. Your visitors then load the feed from your domain and never make a request to us at all, which has one consequence worth the extra two minutes: once a feed has synced, its page views stop counting against your plan, on any plan including free. A Facebook feed on a page taking real traffic is the exact case where that matters, and it is the one thing a hosted embed on any tool, ours included, cannot offer you. The WordPress social feed page covers the install.

The WordPress Custom HTML block, visualized

The animation shows the WordPress Gutenberg flow for a Facebook feed: you drop in a Custom HTML block, paste the single CollectSocials script tag, and the placeholder resolves into a live, styled Facebook feed, with no plugin installed and no theme CSS to fight.

CollectSocials Facebook feed widget rendering full-width and live on a WordPress site
The CollectSocials Facebook feed live on a WordPress site: full-width and on-brand, pasted into a Custom HTML block with no plugin. (June 2026)

Because the widget renders inside a Shadow DOM, it's isolated from your theme's CSS, so it works out of the box on any WordPress setup: Gutenberg, Elementor, Divi, Beaver Builder, GeneratePress, Astra, or any theme and page-builder combination, with no plugin conflicts.

Page builders. If you use Elementor, drop in an HTML widget and paste the code. For Divi, use a Code module; Beaver Builder has an HTML module. The step is identical: paste the embed and save.

Sidebars and footers. To show the feed site-wide in a sidebar or footer, add a Custom HTML widget under Appearance > Widgets and paste the code there. Advanced users can place the snippet directly in a theme template file to render it on every page without adding it manually each time.

WooCommerce. On a WooCommerce store, a Facebook feed on product pages, showing real customer content and product-related posts, adds authentic social proof right at the point of purchase.

Shopify (Online Store 2.0)

  1. Go to Online Store > Themes > Customize in your Shopify admin.
  2. Navigate to the page where you want the feed and click Add section.
  3. Select Custom Liquid and paste the Shopify snippet into the Liquid field.
  4. Position the section where you want it, then save.

Set the picker to Shopify for this one. The Shopify snippet is the same script wrapped in a page-width container with safe margins, because a Dawn-style theme's flex rules will otherwise compress a bare container to one side of the section. It is the failure that generates no support ticket: the feed loads and syncs perfectly, it just sits narrower than you designed it, and it reads as the widget simply looking like that.

Paste into Custom LiquidCollectSocials widget embed code pasted into a Shopify Custom Liquid section with a live preview in the theme editor
Live on the storefrontCollectSocials Facebook feed rendering full-width and live on a Shopify storefront homepage
Shopify: paste the embed into a Custom Liquid section (left) and the Facebook feed renders full-width on the live storefront (right). (June 2026)

Webflow

  1. Open your Webflow project in the Designer.
  2. Drag an Embed element (under Components) onto your canvas where you want the feed.
  3. Paste your embed code into the code field and close the editor.
  4. Publish your site to see the live widget.

For the full Webflow walkthrough, Code Embed vs Code Block, responsive breakpoints, and CMS embeds, see our guide to embedding social feeds on Webflow.

CollectSocials Facebook feed rendering full-width and live on a published Webflow site
The CollectSocials Facebook feed live on a published Webflow site: dropped into an Embed element, fully responsive. (June 2026)

Squarespace

  1. Set the picker to Squarespace and copy the iframe snippet it gives you.
  2. Edit the page and click an insert point to add a block.
  3. Choose the Code block and paste the snippet into it (leave the type set to HTML).
  4. Apply, then save the page.

Squarespace gets an iframe rather than the script tag, and the reason is specific: lower Squarespace plans strip <script> out of a Code block. Paste the default snippet and the feed will work on some Squarespace accounts and render nothing on others, with no error to tell you which you are on. The iframe works on every plan and measures the feed to set its own height.

Wix

  1. Set the picker to Wix and copy the iframe snippet.
  2. In the Wix Editor, click Add > Embed & Social > Custom Embeds > Embed a Widget (in Wix Studio, use the Embed element).
  3. Open the element's code editor, paste the snippet, and click Apply.
  4. Resize and position the element, then publish.

Wix sandboxes custom HTML inside its own frame, so a script tag pasted there is not running in your page's document. The Wix snippet embeds the feed as a self-resizing iframe instead, which is a stronger isolation than the Shadow DOM the script uses elsewhere, not a weaker one: nothing in your Wix template can reach the feed's styles and nothing in the feed can reach your template's.

Wix has a few quirks of its own: the HTML embed works even on free Wix sites, Wix ADI sites must switch to the standard Editor, and the mobile layout is configured separately. For the complete walkthrough with screenshots, see our dedicated guide to embedding a Facebook feed on Wix.

Google Sites

  1. Set the picker to Google Sites. It gives you a URL, not code, because Google Sites cannot run scripts.
  2. Open your site in the Google Sites editor and click Insert > Embed.
  3. Choose the By URL tab, paste the URL, and click Insert.
  4. Resize the embed on the canvas and publish.

This is the one host where the feed sits at a fixed height and scrolls inside its frame, since nothing on the page can measure it for us. The URL carries an h=600 you can change to suit the section. Notion works the same way.

Anywhere else that accepts custom HTML and JavaScript takes the plain HTML snippet as-is: a hand-built static site, a Jekyll or Hugo template, a Rails or Laravel view.

Embedding Facebook Videos Specifically

If your Page leans heavily on video, reels, live recordings, product clips, you can build a feed that showcases them rather than mixing them into a text timeline. (Remember, the Page Plugin can't even play video inline: clicking bounces you to Facebook.)

The native single-video embed. Facebook does offer a basic embed for one video at a time: open the video post, click the three-dot menu, choose Embed, and paste the generated snippet into your site. It works for a single featured clip, say, one testimonial on an About page, but you can only embed one video at a time, the styling is locked to Facebook's look, and swapping the video means editing the code by hand. There's no way to build a dynamic gallery of multiple videos.

A curated video feed instead. With CollectSocials you connect the Page once, then curate posts down to video only on the Collect page, so the embed reads as a designed video gallery, not a raw timeline. A Carousel or Slider layout suits video best: visitors swipe through clips without scrolling. It pulls in every kind of Facebook video from your Page:

  • Native video posts: product launches, tutorials, announcements uploaded straight to your Page.
  • Facebook Live recordings: once a stream ends the recording becomes a regular post, giving past live events a permanent home for visitors who missed them.
  • Facebook Reels: short-form vertical video, surfaced to a new website audience.
  • Videos with engagement: likes, comments, and shares travel with the post, adding social proof a plain YouTube or Vimeo player can't replicate.

Where to Place Your Facebook Feed

Placement decides how much value the feed delivers. A few spots that consistently work:

Choosing the right placement

This animation highlights three hotspots on a website mockup where an embedded social feed earns its place: a homepage section below the fold builds trust before the call to action, a product-page feed adds real-world proof where buying decisions happen, and an About-page feed humanizes the brand. The same placement logic applies directly to a Facebook feed.

Homepage (below the fold). A Facebook section near the bottom of a high-traffic homepage shows your brand is active without crowding your main message. This is exactly where the native plugin's 500px cap hurts: a CollectSocials feed fills the section edge to edge.

About page. Real posts add personality and authenticity that polished corporate copy can't: the human side of your business.

Contact or support page. A live Facebook feed reinforces that you're an active, responsive business and surfaces announcements visitors may have missed.

Product or service pages. Posts that highlight specific products or share customer stories work as social proof right where buying decisions happen.

Going Beyond Facebook: Combining Multiple Platforms

This is where CollectSocials separates from the native plugin entirely. You're not limited to Facebook: in a single feed you can combine Facebook with an Instagram feed, Google Reviews, YouTube, and more. A widget that shows your latest Facebook post next to a five-star review and a recent Instagram photo is far stronger social proof than any single network alone.

If you're building something bigger, an event display or a site-wide wall, see our guides to a social media wall on any website and social walls for events.

Should You Use the Facebook Page Plugin or a Widget?

Adding a Facebook Page to your website should be simple, and the native Page Plugin is simple, as long as you accept a 500px box in Facebook's styling that drags in a cascade of scripts and media, drops six tracking cookies before consent, can't be moderated, and won't even let Lighthouse score the page. For a tiny "Find us on Facebook" widget, that may be a fair trade.

For anything that needs to be full-width, on-brand, fast, responsive, and curated, or combined with Instagram, reviews, and other platforms, you need a tool that gives you real control. After running both through the same test, I use CollectSocials: it dropped no Facebook cookies, was measurable by Lighthouse where the plugin couldn't be scored at all, and renders a Facebook widget that looks like part of my site instead of a window into Facebook, and a Facebook feed runs even on the free plan, with the full custom design unlocked on the trial and paid plans. If you want the product side rather than the teardown, the Facebook feed widget page covers what it does, what it costs, and the limits Facebook imposes.

Facebook rarely stands alone on a website. The same aggregator carries an X/Twitter feed widget for real-time commentary and a TikTok feed for short-form video, and both drop into the same wall as your Page posts.

Start Using CollectSocials Today

One curated feed from 10+ platforms: on your website in a single line of code, or up on the big screen at your event.


Frequently Asked Questions

How do I add a Facebook Page to my website?

Two options. The native method uses Facebook's Page Plugin: enter your Page URL, copy the SDK loader plus the fb-page div, and paste both into your HTML. In my testing the configurator frequently failed to generate code at all, and the result is capped at 500px and locked to Facebook's styling. The more flexible method is a widget tool like CollectSocials: connect your Page, moderate your posts, style the feed, and paste one embed snippet that renders full-width and on-brand.

How do I embed a Facebook feed on my website?

Connect your Facebook Page to an aggregator like CollectSocials, choose which posts to display, pick a layout and theme in the Design Studio, then paste the generated embed code into any page that accepts custom HTML. Unlike the native Page Plugin, an aggregated feed can be full-width, responsive, moderated, and combined with other platforms.

How do I embed a Facebook feed in HTML?

For the native plugin, add the Facebook JavaScript SDK script once and then a <div class="fb-page"> element with your Page URL in the data-href attribute (the full HTML is in the code block above). For a third-party widget on a plain HTML page, you paste a single <script> snippet wherever you want the feed: no SDK, no fb-page markup, no 500px cap. On a hosted builder, take the snippet that platform's own entry in the Get Code picker gives you, since Wix and Squarespace receive a self-resizing iframe instead of a script and Google Sites receives a URL.

Does Facebook have a feed widget?

Yes: the native Page Plugin is Facebook's official feed widget, and it's free. But as my testing showed, it's capped at 500px, can't be styled or moderated, loads a cascade of scripts, and drops six tracking cookies. For a branded, fast, controllable feed widget, most people use a third-party tool instead.

Is the Facebook embed code generator free?

Yes, Facebook's Page Plugin configurator (the embed code generator) is free. In my June 2026 testing it was also unreliable: it repeatedly failed to generate code, with the Get Code button spinning indefinitely or silently doing nothing on personal profiles and permission-restricted Pages. When it does work, the generated code is free to use, with the performance and cookie trade-offs covered above.

How do I add a Facebook feed to Squarespace?

Set the Get Code picker to Squarespace first: it hands you a self-resizing iframe rather than a script tag, because lower Squarespace plans strip <script> out of a Code block. Add a Code block to your page, paste that snippet (keep the type set to HTML), and save. It renders inline, sets its own height and works on every Squarespace plan; the native Page Plugin will still be capped at 500px inside the same block.

Why is my Facebook Page Plugin not working or not responsive?

The most common reasons, all of which I reproduced: (1) the configurator itself often won't generate code: the Get Code button can spin forever or silently fail on personal profiles and permission-restricted Pages; (2) the plugin is hard-capped at 500px wide, so it can't fill a wider section; (3) it measures its width on page load and, per Meta's docs, "will not react to changes to the box model after page load," so it breaks on resize and mobile; or (4) the required Facebook SDK failed to load or is blocked by a consent/cookie tool. If you need a feed that reliably resizes and fills its container, a third-party widget avoids these limits entirely.

Is the Facebook Page Plugin free?

Yes, the Page Plugin is free to use. The trade-off is real: in my June 2026 test (incognito, no extensions) it dropped six Facebook tracking cookies before any interaction, and couldn't be scored by Lighthouse, on top of the 500px cap and fixed styling. For a branded, fast, moderated feed you'll want a dedicated widget tool.

Does the Facebook Page Plugin slow down my website?

It adds work your page did not have. A blank page carrying only the Page Plugin pulled in the Facebook SDK in two parts, then a cascade of obfuscated scripts and a logging request that returned 404, and the transfer total climbs further on Pages serving heavier images, which the plugin pulls in unoptimized. The measurable consequence is the one worth quoting: Lighthouse could not capture a First Contentful Paint at all. By comparison, a CollectSocials Facebook feed on the identical page was measurable.

Does the Facebook Page Plugin set cookies (is it GDPR-compliant)?

Yes, it sets cookies, and and that's the catch. Loading the plugin added a .facebook.com cookie store with six cookies (datr, fr, ps_l, ps_n, sb, wd) on page load, before any visitor interaction. Under GDPR, third-party advertising/tracking cookies like fr generally require prior consent, so the plugin can create a compliance obligation. The CollectSocials widget added no .facebook.com domain or cookies at all in the same test.

Can I embed a personal Facebook profile on my website?

Not as a feed. The native Page Plugin only works with Facebook Pages (it silently failed when I entered a personal profile URL), and third-party tools like CollectSocials connect Pages you own or admin, a Meta Graph API privacy restriction. If you want a feed on a business website, use a Page.

How do I add a Facebook feed on WordPress, Shopify, or Wix?

Pick your platform in the Get Code dialog first, because the snippet differs. On WordPress, paste it into a Custom HTML block, or install the CollectSocials WordPress plugin instead so the feed renders from your own database and its page views stop being metered once it has synced. On Shopify, take the Shopify snippet (page-width wrapped, so a theme cannot compress it) and add it as a Custom Liquid section under Online Store > Themes > Customize. On Wix, take the Wix snippet, a self-resizing iframe, and paste it into an Embed element. See the WordPress steps above, or our dedicated guide to embedding a Facebook feed on Wix.


Sources