Upbinger Blog
Upbinger Blog
Description
Upbinger Blog lets you seamlessly embed your blog content — published through Upbinger — into your WordPress site. The plugin uses Shadow DOM for complete CSS isolation, so your blog styles never clash with your theme.
Key Features
- Customizable Styles — Configure grid title, colors, fonts, spacing, and more from the Upbinger dashboard (Publish Style tab). Changes apply on next publish.\n* Back to Blog Navigation — Configurable “ Back to Blog” link on every post for easy grid return.\n* Shadow DOM Isolation — Blog CSS lives inside a shadow root and cannot interfere with your theme or vice versa.
- rem em Conversion — Automatically converts CSS
remunits toemso blog typography renders correctly regardless of your theme’s root font-size. - SEO Meta Injection — Open Graph, Twitter Card, canonical link, and JSON-LD structured data are injected into the page
<head>for search engines and social media. - SPA Navigation — Internal blog links navigate without a full page reload. Back/forward buttons work as expected.
- Google Fonts in Light DOM — Font stylesheets are hoisted into the page
<head>so they load correctly across all browsers. - Anonymous Analytics — Visit counts are sent via
sendBeaconwith session deduplication. No cookies, no PII. - Automatic Container Detection — Finds the best content area in your theme automatically, or you can specify a CSS selector.
How It Works
- Your blog HTML is published to the Upbinger CDN.
- The plugin fetches the correct page from the CDN when a visitor loads your blog route.
- The HTML is cleaned, adapted for Shadow DOM (CSS scoping, remem, SEO extraction), and injected into an isolated shadow root.
- Visitors see your blog styled exactly as designed, with zero CSS side-effects.
Requirements
- An active Upbinger account with a published blog.
- WordPress 5.0 or higher.
- PHP 7.4 or higher.
External services
This plugin relies on two third-party services provided by Upbinger.
Upbinger CDN (cdn.upbinger.com)
Blog HTML, CSS, images, and font references are fetched from the Upbinger content-delivery network every time a visitor loads a blog page on your site.
- What is sent: an HTTPS GET request containing only the URL path of the blog page being loaded (e.g.
/blogs/example.com/index.html). No cookies or personal data are transmitted. - When: on every front-end page load of the blog route.
- Service provider: Upbinger — Terms of Service | Privacy Policy
Upbinger Analytics API
Anonymous page-view events are sent so site owners can see which posts are popular. No cookies are set and no personally-identifiable information is collected.
- What is sent: the page path, a session-scoped deduplication flag (stored in
sessionStorage), and the site domain. The request is made vianavigator.sendBeacon. - When: once per unique page view per browser session (deduplicated). Can be disabled entirely from Settings Upbinger Blog Disable Analytics.
- Endpoint:
https://m745tnh6jg.execute-api.us-east-1.amazonaws.com/api/trackVisit - Service provider: Upbinger — Terms of Service | Privacy Policy
Installation
- Upload the
upbinger-blogfolder to/wp-content/plugins/. - Activate the plugin through the Plugins menu in WordPress.
- Navigate to Settings Upbinger Blog.
- Enter your site domain (e.g.
example.com) and blog base path (e.g./blog). - Optionally specify a CSS container selector or enable debug logging.
- Visit your blog page to verify content loads correctly.
Faq
Yes. The plugin loads blog content from Upbinger’s CDN, so you need a published blog on the platform.
No. All blog CSS is isolated inside a Shadow DOM root. Your theme’s CSS cannot leak in, and the blog’s CSS cannot leak out.
Some themes set html { font-size: 62.5%; } which changes the meaning of CSS rem units. This plugin automatically converts rem to em and sets a 16px base so blog text renders at the intended size.
Positively. The plugin injects Open Graph, Twitter Card, canonical link, and JSON-LD structured data into the page <head> so search engines and social platforms can properly index and preview your blog content.
Yes. The plugin sends anonymous page-view events only (no cookies, no personal data). You can also disable analytics entirely from the settings page.
Reviews
Changelog
2.0.1
- Fix duplicate JSON-LD structured data (BlogPosting + FAQPage) appearing in both document head and Shadow DOM.
2.0.0
- Complete rewrite for WordPress.org coding standards.
- Shadow DOM isolation for CSS conflict prevention.
- rem em conversion for theme compatibility.
- SEO meta injection (OG, Twitter, canonical, JSON-LD).
- SPA-style internal navigation.
- Anonymous analytics with session deduplication.
- Debug logging gated behind an admin setting.
- Proper escaping, sanitization, and i18n throughout.
1.0.0
- Initial release.