Connect SnowSEO with your favorite CMS platforms, analytics tools, and SEO services to create a unified content workflow.
Integrations let you connect SnowSEO to the external tools your team already uses — so you can publish content, track performance, and monitor search visibility without switching between platforms.
All integrations are configured per brand. If you manage multiple websites, connect each brand to its own set of tools independently.
To manage your integrations, open the user menu at the bottom-left of the dashboard and select Integrations from the dropdown.This opens the Integrations drawer with tabs organized by function: CMS & Publishing, Analytics & Performance, SEO & AI Tools, Social Media, API, and MCP.Each integration uses an accordion pattern — click the row to expand it and see connection details.
Not all integrations are equally important. Here’s the priority order:
Priority
Integration
Why
1st
Google Search Console
Without it, SnowSEO cannot show your real search traffic, keyword positions, or click-through rates. This is the foundation of almost every dashboard.
2nd
Your CMS (WordPress, Ghost, etc.)
Unlocks Publish and Schedule buttons in the Article Editor so you can push content live without copy-pasting.
3rd
Google Analytics
Enables Content ROI and Website Traffic metrics on published articles.
4th
Bing Webmaster Tools
Captures the ~6–10% of search traffic that comes from Bing, especially if your audience skews enterprise or older demographics.
5th
PostHog
If you run a SaaS product, this connects product analytics with your SEO performance data.
CMS & Publishing
Analytics & Performance
SEO & AI Tools
Social Media
API (Beta)
MCP (Soon)
The CMS & Publishing tab lists content management platforms you can connect for direct article publishing. Once linked, you can push SEO-optimized articles from SnowSEO straight to your live website.
Connecting a CMS unlocks the Publish Now and Schedule buttons inside the Article Editor. Without it, you can still write and optimize content — but you’ll need to manually copy the output to your website.
Connect your WordPress site to create and publish posts directly from SnowSEO. Supports both WordPress.com and self-hosted WordPress.org installations.SnowSEO offers three connection methods — choose based on your hosting setup:
OAuth
Password
Plugin
Best for: WordPress.com sites and self-hosted sites where the WordPress REST API is accessible.This is the simplest method — no manual credential management required.
1
Click Connect + on the WordPress row
In SnowSEO, find WordPress in the CMS & Publishing tab and click Connect +. The panel expands with three tab options.
2
Select the OAuth tab
It’s selected by default. You’ll see a single field: Site URL.
3
Enter your WordPress Site URL
Type the main domain of your WordPress site (e.g., wordpress-blog.com). Do not include /wp-login, /wp-admin, or https:// — those are added automatically.
4
Click Connect
Click + Connect. A secure WordPress authorization window opens where you sign in to your WordPress admin and grant SnowSEO permission. Once authorized, the status changes to Connected.
OAuth is the fastest method. Try it first — if your WordPress site blocks the REST API (common with certain hosting providers or security plugins), fall back to the Password or Plugin method.
Best for: Self-hosted WordPress.org sites where OAuth is blocked or unavailable.Uses an Application Password — a revocable token generated inside WordPress, not your main login password.
1
Click Connect + and select the Password tab
In SnowSEO, expand the WordPress panel and select the Password tab.
2
Enter your WordPress Site URL
Type your site’s main domain (e.g., wordpress-blog.com). No protocol, no /wp-admin.
3
Enter your Admin Username
Type the WordPress username you log in with. This user must have admin privileges.
4
Generate an Application Password in WordPress
In your WordPress admin:
Go to Users → Your Profile
Scroll to the Application Passwords section
Type a name (e.g., “SnowSEO”) and click Add New Application Password
Copy the generated password — it looks like xxxx xxxx xxxx xxxx xxxx xxxx
5
Paste the Application Password and connect
Back in SnowSEO, paste the generated password into the Application Password field (use the eye toggle to reveal/hide it). Click + Connect.
The Application Password is not your WordPress login password. It’s a separate, revocable credential for third-party access. You can revoke it anytime from your WordPress profile without affecting your main login. If you revoke it, the SnowSEO integration will break — just generate a new one and reconnect.
Best for: Sites behind firewalls, using non-standard hosting, or where security plugins block REST API access.Uses a dedicated SnowSEO WordPress plugin with a site token (API key) for the most reliable connection.
1
Click Connect + and select the Plugin tab
In SnowSEO, expand the WordPress panel and select the Plugin tab.
2
Download the SnowSEO WordPress plugin
Click Download Plugin to download the .zip file.
3
Install and activate the plugin in WordPress
In your WordPress admin:
Go to Plugins → Add New → Upload Plugin
Upload the downloaded .zip file
Click Install Now, then Activate
4
Generate an API Key in SnowSEO
Back in SnowSEO, click Generate API Key. A unique key appears (e.g., sw_live_941cbd0fbbcf...). Click the copy button.
5
Enter the site token in the WordPress plugin
In WordPress, open SnowSEO in the admin sidebar, paste the site token from SnowSEO (Plugin tab → Generate API Key), and click Save & Connect.
6
Wait for automatic activation
In SnowSEO, the Connect button shows Waiting for activation with a spinner. Once the plugin validates the key with SnowSEO’s servers, the status automatically changes to Connected. This usually takes a few seconds.
If the status stays on “Waiting for activation” for more than a minute, check that your WordPress site can make outbound HTTPS requests to SnowSEO’s API. Some hosts block outbound connections — contact your hosting provider if needed.
Once connected, the WordPress accordion shows:
Site Title — Your WordPress site name
Site URL — The connected domain
Connection Method — Tag showing OAuth, App Password, or Plugin
Disconnect button (red) — removes the integration
You can only have one active CMS integration per brand. If you connect WordPress, then try to connect Ghost, the previous connection gets replaced. Disconnect first if you want to switch platforms cleanly.
Professional publishing platform. Connect your Ghost publication to manage and schedule content directly from SnowSEO.
1
Click Connect + on the Ghost CMS row
In SnowSEO, find Ghost CMS and click Connect +.
2
Enter your Ghost Site URL
Type the full URL of your Ghost site (e.g., https://blog.example.com). Include https:// and do not add a trailing slash.
3
Create an Admin API Key in Ghost
In your Ghost admin:
Go to Settings → Integrations
Click Add custom integration and name it “SnowSEO”
Ghost generates a long Admin API Key — copy it immediately
4
Paste the key and connect
Back in SnowSEO, paste the key into the Admin API Key field. Click + Connect. The status changes to Connected once verified.
The Ghost Admin API Key is the only credential you need. It includes both a key ID and a secret in a single string — SnowSEO handles everything else. If you ever regenerate the key in Ghost, you’ll need to reconnect SnowSEO with the new key.
Connect Webflow to manage CMS items on your published sites.
1
Click Connect + on the Webflow row
In SnowSEO, find Webflow and click Connect +.
2
Get your Webflow Site ID
In your Webflow dashboard:
Open the site you want to connect
Go to Site settings → General
Find your Site ID (a string like 1234567890abcdef)
Leave this tab open — you’ll need it after creating the token.
3
Create an API Token in Webflow
Still in Webflow:
Go to Account → Integrations → API access
Click Generate API token
Give it a name (e.g., “SnowSEO”)
Enable CMS Read & Write access — required for publishing
Copy the token immediately — Webflow only shows it once
4
Enter the Site ID and paste the token
Back in SnowSEO:
Paste the Site ID into the first field
Paste the API Token into the second field
Click + Connect
Once connected, you’ll see two dropdowns:
Webflow Site — Select which site to publish to
CMS Collection — Select which collection (blog, articles, etc.)
The API Token is shown only once by Webflow. If you lose it, you must generate a new one in Webflow and reconnect. Keep it in a password manager until the SnowSEO connection is verified.
After connecting, make sure you’ve selected the correct CMS Collection in the expanded panel. SnowSEO will only publish to the collection you select. If you don’t see any collections, make sure your site has at least one CMS collection defined in Webflow.
Connect Framer to publish content via SnowSEO’s Framer plugin using a secure API key.
1
Click Connect + on the Framer row
In SnowSEO, find Framer and click Connect +.
2
Generate your API Key
Click Generate API Key. SnowSEO creates a unique key for your project.
3
Copy the API Key
A green success banner appears with the key. Click Copy — you need this to configure the Framer plugin.
4
Configure the Framer plugin
Open your Framer project, navigate to the SnowSEO plugin settings, and paste the API key where requested.
5
Wait for activation
Back in SnowSEO, the status shows Pending with an amber badge. Once the Framer plugin validates the key, it changes to Connected.
The API key is shown once after generation. Copy it immediately. If you lose it before connecting, click Revoke Key in the SnowSEO panel and generate a new one.
Receive real-time CMS publish payloads at your own endpoint. Unlike other CMS integrations, Webhook allows multiple connections — you can set up separate webhooks for different services (e.g., a Next.js blog, a custom headless CMS, and a Zapier automation).
The panel expands. If you have no webhooks yet, an empty form appears automatically.
2
Enter an Integration Name
A descriptive name so your team can identify this connection (e.g., Next.js Blog, Zapier Automation). Must be 2–30 characters.
3
Add your Webhook Endpoint URL
The destination URL where SnowSEO sends events (e.g., https://your-site.com/api/webhook). Must be HTTPS and publicly reachable. In development mode, http:// URLs are also accepted.
4
Set an Access Token
A secret token you choose. SnowSEO sends this in the Authorization header as Bearer <your-token>. Your endpoint should verify this token before processing payloads.
5
Click + Connect
SnowSEO sends a validation ping to your endpoint. If your endpoint returns a 2xx status, the webhook is saved and connected. You can add more webhooks by clicking Add New Webhook.
6
Test by publishing an article
Publish any article from the dashboard. Your endpoint should receive a POST request with the article.published or article.drafted event payload.
Managing Webhooks:
Each webhook shows a row with its name, endpoint URL, and an active/inactive toggle
Click the pencil icon to edit name, URL, or secret — SnowSEO re-validates by sending a webhook.connected ping after any credential change
Click the trash icon to delete the webhook — SnowSEO sends a webhook.disconnected event to your endpoint before removal
Use Disable All to turn off all webhooks at once
The overall integration shows as “Connected” when at least one webhook is active
Webhook Payload Structure:When SnowSEO publishes an article, your endpoint receives a POST request with the following JSON body:
{ "event": "article.published", "timestamp": "2026-05-13T10:30:00.000Z", "article": { "slug": "my-article-slug", "title": "My Article Title", "markdown": "Full markdown content without the featured image...", "html": "<p>Converted HTML content...</p>", "status": "publish", "featuredImage": { "url": "https://example.com/image.jpg", "caption": "Image caption or null" }, "metaData": { "metaTitle": "SEO Meta Title", "metaDescription": "SEO meta description...", "ogTitle": "Open Graph Title", "ogDescription": "Open Graph Description", "canonicalUrl": "https://example.com/my-article-slug", "twitterTitle": "Twitter Card Title", "twitterDescription": "Twitter Card Description" } }}
Event Types:
article.published — Sent when an article is published
article.drafted — Sent when an article is saved as draft
article.unpublished — Sent when an article is unpublished or removed
webhook.connected — One-time validation ping sent after connecting or updating credentials
webhook.disconnected — Sent to your endpoint before the webhook is removed
Response (optional):Your endpoint can optionally return JSON with cmsArticleId and/or cmsUrl to store CMS metadata back to SnowSEO:
Always validate the Authorization Bearer token in your webhook handler. Log failed requests for easier debugging. The access token is encrypted at rest but sent in plaintext with each request.
Coming soon. Publish SEO-optimized articles to your Shopify store blog. The integration fields are already built — connect your shop domain and Admin API access token once released.
The Analytics & Performance tab connects your traffic and user-behavior tools. This gives you a single dashboard view of how your content is performing.
Connecting Google Analytics (GA4) enables the Content ROI and Website Traffic metrics on published articles. Without it, these sections show as unavailable in the content performance view.
Connect Google Analytics (GA4) to track website traffic, user behavior, and acquisition channels within your SnowSEO dashboard.
1
Click Connect + on the Google Analytics row
In SnowSEO, find Google Analytics and click Connect +.
2
Sign in with your Google account
A secure OAuth window opens. Sign in with the Google account that has access to your GA4 property and grant SnowSEO read-only permissions.
3
Select your GA4 property
If your account has access to multiple GA4 properties, choose the one corresponding to this brand. Use the dropdown in the expanded panel.
4
Confirm the connection
Status changes to Connected. SnowSEO begins pulling traffic data — you’ll see Website Traffic and Content ROI metrics on your articles.
Google Analytics data can take 24–48 hours to fully sync after initial connection. If you don’t see data immediately, check back the next day before troubleshooting.
Connect your PostHog instance to track product analytics and user engagement alongside your SEO data.
1
Click Connect + on the PostHog row
The panel expands with four fields and an inline guide card showing where to find each key.
2
Get your PostHog Host URL
Your PostHog instance URL. If you use PostHog Cloud, this is https://us.i.posthog.com (US) or https://eu.i.posthog.com (EU). For self-hosted, use your own domain.
3
Get your Project API Key
In PostHog:
Go to Project Settings → Project API Key
Copy the key — it starts with phc_
4
Get your Personal API Key
In PostHog:
Click your avatar → User Settings → User API Keys
Click Create personal API key and name it “SnowSEO”
Copy the key — it starts with phx_
5
Get your Project ID
In PostHog, your Project ID is a numeric value. You can find it in Project Settings or in the URL when you’re on a project page (e.g., app.posthog.com/project/12345 — the 12345 is your Project ID).
6
Enter all fields and connect
Back in SnowSEO, fill in all four fields and click Connect to PostHog.
PostHog requires both the Project API Key (phc_) and the Personal API Key (phx_) — they serve different purposes. The Project API Key identifies the project, while the Personal API Key allows SnowSEO to fetch data on your behalf.
SnowSEO only reads analytics data from PostHog. Your events, feature flags, and experiments are never modified or deleted.
Coming soon. Combine product-event analytics with SEO and content outcomes.
The SEO & AI Tools tab connects SnowSEO to search engines and SEO platforms. These integrations provide the real ranking data and search visibility insights that power most of SnowSEO’s analytics.
Google Search Console is the single most important integration. Without it, SnowSEO cannot display your real website traffic, historical keyword positions, or search performance data. Connect it as your very first step after adding a brand.
Unlocks real search traffic data, keyword impressions, click-through rates, and indexing status.
1
Click Connect + on the Google Search Console row
In SnowSEO, find Google Search Console and click Connect +.
2
Sign in with your Google account
A secure OAuth window opens. Sign in with the Google account that owns (or has full access to) the Search Console property for your website.
3
Select your Search Console property
Once connected, the expanded panel shows a Search Console Property dropdown. If your account manages multiple properties, select the correct one (e.g., snowseo.com — both Domain and URL prefix properties are supported). Each property shows a permission badge indicating your access level (Full, Owner, Restricted, or Unverified).
4
Data starts syncing
Status changes to Connected. SnowSEO begins syncing impressions, clicks, average position, and CTR data.
Managing Your Connection:
Action
What it does
Switch Property
Change which Search Console property data is fetched from. Use the dropdown in the expanded panel.
Reconnect
Re-authenticates the connection — useful if your access token expired or you need to switch Google accounts.
Disconnect
Removes the integration. Historical data already imported is retained, but SnowSEO stops pulling new data.
If you see “No properties found” after connecting, it means your Google account doesn’t have any verified Search Console properties. Go to Google Search Console first, add and verify your property, then reconnect SnowSEO.
Monitor your site’s performance on Bing, manage indexing, and receive SEO reports.
1
Click Connect + on the Bing Webmaster Tools row
In SnowSEO, find Bing Webmaster Tools and click Connect +.
2
Sign in with your Microsoft account
A secure OAuth window opens. Sign in with the Microsoft account that has access to your Bing Webmaster Tools property.
3
Select your site
Once connected, use the Bing Site dropdown to select the verified site that corresponds to this brand.
4
Data starts syncing
Status changes to Connected. SnowSEO begins pulling Bing search performance data.
While Google dominates search for most sites, Bing accounts for ~6–10% of desktop search in the US and Europe. If your audience skews enterprise, older demographics, or uses Microsoft Edge/Internet Explorer, Bing data can reveal meaningful traffic you’re currently blind to.
Click Get a Key and select or create a GCP project
Copy the generated API key (starts with AIzaSy)
3
Paste the API key and connect
Back in SnowSEO, paste the key into the Google API Key field and click Connect. Status changes to Active.
Your API key is stored securely. Default Google quota: 25,000 PSI requests/day per GCP project (plus ~400 per 100s).
Once connected, SnowSEO automatically refreshes stale page scores in the background. PSI audits do not consume page_audits usage — runs are limited to the default Google quota.
Connected state: Shows an Active badge and the date the API key was first connected.Disconnect: Removes the API key. Page speed data already stored is retained.
Instantly notify Bing, Yandex, and other IndexNow-compatible search engines whenever you publish or update a URL — so they re-crawl it immediately instead of waiting for their own schedule.
Requires: Active plan + owner or admin role on the brand.
Generate a new key
Use an existing key
SnowSEO generates a cryptographically random key for you.
1
Click Connect + on the IndexNow row
The panel expands with options to generate or import a key.
2
Click Generate Key
SnowSEO creates a unique {key}.txt file and shows the key.
3
Download the key file
Click Download Key File — saves {key}.txt to your computer.
4
Upload the key file to your website root
The key file must be accessible at: https://{your-domain}/{key}.txt
5
Verify the key in SnowSEO
Back in SnowSEO, click Verify. SnowSEO fetches the file to confirm it exists and contains the correct key.
6
Status updates to Connected & Verified
Once verified, the accordion shows: Verified on [date]. You can now submit URLs.
If you already have an IndexNow key deployed on your server:
1
Click Connect + → switch to Existing Key tab
The panel shows a field to paste your key.
2
Paste your key
Keys must be 8–128 characters: letters, digits, or dashes only (e.g., abc123-def456).
3
Confirm the expected file location
SnowSEO shows the expected URL: https://{host}/{key}.txt
4
Click Verify
SnowSEO fetches the file and confirms. Status changes to Connected & Verified.
The key file must stay accessible at all times. If you delete it or your server blocks the URL, future IndexNow submissions will fail with HTTP 403.
Once verified and active, you can submit URLs to Bing, Yandex, and other compatible engines in one request.Limits:
Up to 10,000 URLs per submission
All URLs must belong to the same verified host
When to submit:
After publishing a new article or blog post
After bulk content updates (e.g., refreshing 50 old posts)
After changing URL slugs — submit the new URL so engines re-crawl it
Before a major product launch or redesign
IndexNow sends one request that reaches all participating engines simultaneously. You don’t need separate integrations for Bing, Yandex, or other engines — one IndexNow key handles them all.
Managing Your Connection:
Action
What it does
Verify
Re-checks {key}.txt — use if you re-uploaded the file or want to confirm it’s still accessible
Disconnect
Removes key + host from SnowSEO. Data about past submissions is cleared.
Coming soon. AI-assisted SEO workflows directly inside SnowSEO.
Coming soon. Connect your social media profiles to track brand mentions and engagement alongside your SEO performance. X (Twitter) and LinkedIn integrations are in development.
Generate and manage SnowSEO API keys for programmatic access. Requires the Scale plan and owner/admin role. Each API key is scoped to a single brand — the key automatically carries the brand context, so you don’t need to pass teamId on API requests.
1
Click Create new key
An inline form appears for naming your key.
2
Enter a key name
Give it a descriptive name (e.g., “Production CI/CD”, “Analytics Export”).
3
Click Generate
A green success banner appears with the full key. This is the only time the full key is shown — copy it immediately and store it securely.
4
Use the key
Include it in the Authorization header of your API requests as Bearer <your-key>.
Managing Keys:
The keys table shows Name, Key prefix (last few characters), and Last used date
Click the delete icon next to any key to revoke it
A confirmation modal appears before deletion — this action is irreversible
The full API key is shown only once at generation. SnowSEO stores only a hash of the key for security. If you lose it, you must revoke the old key and generate a new one.
Coming soon. MCP (Model Context Protocol) integration will allow AI coding assistants like Claude and Cursor to access your SnowSEO data directly through the MCP protocol.
Start with Google Search Console — it unlocks the majority of SnowSEO’s value by providing real search data. Next, connect your CMS (WordPress, Ghost, Webflow, or Framer) so you can publish directly. Finally, add Google Analytics for comprehensive traffic and ROI reporting.
Can I connect multiple CMS platforms to the same brand?
No — each brand can have only one active CMS integration at a time. If you need to switch (e.g., migrating from WordPress to Webflow), disconnect the current integration first, then connect the new one. Webhooks are an exception — you can have multiple webhook endpoints active simultaneously.
What happens to my data if I disconnect an integration?
Historical data already imported into SnowSEO (rankings, traffic history, published articles) is retained. However, SnowSEO will stop pulling new data from the disconnected service until you reconnect. If you reconnect later, data sync resumes — you don’t lose the time in between, but there will be a gap in your historical timeline.
My integration shows as connected but data isn't appearing — what should I do?
First, check the data sync delay:
Google Search Console: Data is updated daily (Google’s limitation). Allow up to 48 hours.
Google Analytics: Can take 24–48 hours for initial data to populate.
PostHog/Bing: Usually available within minutes.
If it’s been longer than expected:
Click Reconnect from the expanded integration panel — this re-authenticates the connection
Verify the correct property/site is selected in the dropdown
Check that your account still has the required permissions in the external platform
If using GSC, ensure your property is verified in Google Search Console
If none of these work, disconnect and reconnect the integration.
Are my credentials safe?
Yes. SnowSEO uses OAuth 2.0 for all major integrations (Google Search Console, Google Analytics, Bing Webmaster Tools, WordPress). Your passwords are never stored — only secure, revocable access tokens are used.For integrations that require API keys or application passwords (PostHog, Ghost, Webflow, WordPress Plugin/Password methods), these are encrypted at rest and sent only when communicating with the respective service. You can revoke access at any time from either SnowSEO or the third-party platform.
Can I use OAuth, Password, and Plugin methods interchangeably for WordPress?
Yes, but each connection replaces the previous one. If you originally connected via OAuth and want to switch to the Plugin method, disconnect first, then reconnect using the new method. Wordpress.com sites must use OAuth — the Password and Plugin methods only work with self-hosted WordPress.org installations.
I'm using Cloudflare's firewall and WordPress integration keeps failing — what should I do?
This is a common issue. The Plugin connection method is designed for exactly this scenario. It bypasses most firewall and security plugin restrictions by using a dedicated WordPress plugin that communicates with SnowSEO’s servers directly. If the Plugin method also fails, check that your WordPress server can make outbound HTTPS requests — Cloudflare’s WAF rules sometimes block outbound connections to unknown IPs; adding SnowSEO’s API to your allowlist usually resolves this.
How do I switch Google Search Console properties without disconnecting?
Expand the Google Search Console integration row. There’s a Search Console Property dropdown that lists all properties your connected Google account has access to. Select a different property from the dropdown — SnowSEO will automatically start fetching data from the new property. No need to disconnect and reconnect.
My Google OAuth token expired — how do I fix it?
Click Reconnect in the expanded integration panel. This re-authenticates with Google and issues a fresh token. OAuth tokens typically expire after a few hours, but SnowSEO handles automatic refresh behind the scenes — you should only need to manually reconnect if the refresh fails (e.g., if you changed your Google password or revoked SnowSEO’s access).
PostHog shows 'Connected' but no data appears. What's wrong?
Double-check your four fields:
Host URL — Make sure it points to your actual PostHog instance (e.g., https://us.i.posthog.com not https://app.posthog.com)
Project API Key (phc_) — This is found in Project Settings, not User Settings
Personal API Key (phx_) — This is found in User Settings → User API Keys
Project ID — This is the numeric ID visible in the URL or Project Settings
The most common mistake is mixing up the two keys or using the wrong Host URL for cloud vs. self-hosted instances.
Can I integrate SnowSEO with a headless CMS or custom website?
Yes — use the Webhook integration. Set up an endpoint on your site that receives SnowSEO’s publish payloads (title, content, metadata, etc.), then write your own logic to handle the data. This works with any stack: Next.js, Nuxt, Gatsby, custom PHP, or anything else that can accept HTTPS POST requests.
What permissions does SnowSEO need for Google Search Console?
SnowSEO requests read-only access to your Search Console account. This means:
Can read: Impressions, clicks, CTR, keyword positions, indexing status, sitemaps
Cannot modify: Settings, users, properties, sitemaps, or any other data
The same applies to Google Analytics — read-only access to GA4 property data only.
I don't see the API tab — how do I get API access?
API keys are available on the Scale plan and require an owner or admin role in at least one team within the organization. If you’re on a lower plan or have a member role, the tab will show a “Scale Plan Required” message. Upgrade your plan or ask your organization owner to generate a key for you.Each key is scoped to a specific brand — if you need access to multiple brands, generate a separate key for each one.