How to add a 3D viewer to WordPress: plugin, iFrame or shortcode to display GLB, STEP and FBX files. Performance, security and GDPR compared.
You have a GLB, STEP or FBX model and want to display it directly on your WordPress site. The immediate question: native plugin, external iFrame or custom shortcode? These three approaches have very different profiles in terms of complexity, performance and maintenance. This guide compares each one so you can choose the right fit for your context.
A native plugin installs from the WordPress directory and handles upload, rendering and viewer configuration directly in the admin. Advantages: visual integration in the Gutenberg editor, no code to write, updates via the dashboard. Disadvantages: dependency on the plugin author's maintenance, extra load on your WordPress server, compatibility sometimes fragile with other plugins or the active theme.
WordPress 3D plugins are generally limited to GLB/GLTF formats. For STEP or IGES files, common in industrial settings, very few native plugins offer direct conversion or rendering. If you work with CAD files, this limitation is often a deal-breaker.
An iFrame embeds a viewer hosted elsewhere (on a dedicated platform) into your WordPress page via a standard HTML tag. It is the lightest method for WordPress: no server processing, no CMS dependency. The viewer runs on the provider's infrastructure, not your hosting. Viewer updates are managed by the provider, not by you.
For integration, a Custom HTML block in Gutenberg is enough. Compatibility is universal: WordPress, Webflow, Shopify, any CMS that accepts raw HTML. The only technical prerequisite on the provider side is CORS header and embedding policy configuration, OmniView 3D handles these parameters for its integration links.
A shortcode is an intermediate solution: you register a PHP function in functions.php or a child plugin that generates the iFrame tag or rendering script. Advantage: full control over rendering and parameters. Disadvantage: requires WordPress development skills, maintenance at each WordPress or theme update, and introduces technical debt if the original developer is no longer available.
| Method | Formats | WordPress server load | Skills required | Maintenance | Best for |
|---|---|---|---|---|---|
| Native plugin | Mostly GLB/GLTF | Yes (on your pages) | None | Depends on plugin author | Simple GLB model, showcase site |
| External iFrame | STEP, IGES, GLB, FBX, OBJ… | None | Paste HTML | Delegated to the provider | Teams with no developer, CAD files |
| Custom shortcode | Depends on embedded viewer | Low | PHP / WordPress | On you (technical debt) | Developers wanting full control |
<!-- WordPress Custom HTML Block (Gutenberg) -->
<iframe
src="https://app.omniview3d.com/embed/YOUR-MODEL-ID"
width="100%"
height="500"
frameborder="0"
allow="fullscreen"
loading="lazy"
title="OmniView 3D interactive viewer"
style="border-radius:12px;">
</iframe>The viewer displays directly in the page, responsive on desktop and mobile. No additional plugin required. If your theme uses a page builder (Elementor, Divi, Bricks), add an HTML or Code widget instead of the Gutenberg block, the principle is identical.
This is the most underestimated criterion. A native plugin that loads a WebGL library in the HEAD of all your pages degrades Core Web Vitals even on pages without a 3D model. Google sets the "good" threshold for LCP (Largest Contentful Paint) at 2.5 seconds; both LCP and TBT (Total Blocking Time) are directly affected by non-deferred 3D scripts.
An external iFrame loads lazily by default in modern browsers. Native iframe lazy-loading via the loading="lazy" attribute is now a web standard: the viewer only initialises when it enters the viewport, and the impact on pages without a viewer is zero. This is a decisive advantage for blogs with only one or two pages of 3D content, and for e-commerce, where pages with 3D or AR can convert up to 94% better than static images alone, per Shopify's own data.
Most WordPress 3D plugins only support GLB and OBJ. For teams exporting STEP from SolidWorks, CATIA or Fusion 360, this limitation requires a conversion step at each model update, a round-trip through Blender or an extra export at each iteration.
OmniView 3D natively supports STEP, IGES, GLB, FBX, OBJ, STL, PLY and DAE. You upload your CAD file as-is, and the viewer converts and renders it directly. No prior conversion, no intermediate step. For design teams updating models regularly, this time saving is significant.
A native WordPress plugin that stores 3D files on your hosting exposes those files in your uploads directory, indexable by search engines, accessible via direct URL if misconfigured. For confidential design models, this is a risk.
OmniView 3D offers private, non-indexed, revocable links. The source file stays hosted in Europe (AWS eu-west-1, Ireland) on OmniView's shared infrastructure, isolated per account and separate from your WordPress. You can revoke access to the model without modifying your site. For industrial SMBs subject to GDPR, this separation simplifies compliance management.
In most professional cases, the external iFrame is the most robust method: zero load on your WordPress server, multi-format support, maintenance delegated to the provider, and built-in access control. OmniView 3D offers a free Starter plan to test the integration on your site before any commitment.
For most teams, the external iFrame: no load on your WordPress server, support for CAD formats (STEP, IGES) on top of GLB, and viewer maintenance delegated to the provider. You paste the code into a Gutenberg Custom HTML block, no developer required.
Not with most native 3D plugins, which are limited to GLB/GLTF. Through an external iFrame viewer like OmniView 3D, which reads STEP, IGES, GLB, FBX, OBJ, STL, PLY and DAE, you embed the CAD file as-is, with no conversion step at each model update.
A plugin that loads a WebGL library on every page degrades Core Web Vitals even with no model shown. A lazy-loaded iFrame only initialises when it enters the viewport, so the impact on pages without a viewer is zero.
The source file stays hosted with the provider (OmniView 3D: AWS eu-west-1, Ireland), outside your WordPress uploads directory. You display it through a private, non-indexed, revocable link, and you can cut access without touching your site.
Try OmniView 3D for free
Upload a file and view it right away. No account required.
Try without signing up