You just published a blog post in Sanity. It reads well, the meta description is tight, and your editor gave it a thumbs up. Now you wait. A month later, you open Google Search Console in a separate tab, paste in the URL, and discover the page is stuck at position 14 with 12,000 impressions and a 0.3% CTR. The title needs work. But by now, you have moved on to other things — and so has your ranking.
This is the reality for most Sanity content teams. The data that should inform your next edit lives in a completely different tool.
The Problem: Search Data Lives Outside Your CMS
Every headless CMS — Sanity included — was built for content creation, not content performance. When you want to know how a page is performing in Google, the workflow looks something like this:
- Open the document in Sanity Studio
- Copy the page slug
- Switch to Google Search Console
- Navigate to Performance and filter by URL
- Review clicks, impressions, CTR, and average position
- Screenshot or jot down findings
- Switch back to Sanity
- Make your edits
- Repeat for the next page
For a single page, this takes a few minutes. For a site with hundreds of pages, it is a workflow that simply does not scale. And it assumes every editor on your team even has access to Search Console — most do not.
The result is predictable: content decisions get made without data. Pages decay in rankings without anyone noticing. High-impression, low-CTR opportunities sit untouched because nobody saw them.
Why WordPress Teams Have an Advantage (For Now)
WordPress solved this years ago. Google's official Site Kit plugin brings Search Console data directly into the WordPress dashboard. Yoast SEO takes it further by combining content quality scores with live search performance metrics right inside the block editor — clicks, impressions, CTR, and position alongside readability and SEO scores.
WordPress editors see a feedback loop: publish, observe performance, optimize, repeat. All without leaving their editor.
HubSpot has a similar native integration. Contentful recently launched an analytics product aimed at the same problem.
But in the headless CMS world — Sanity, Strapi, Contentful, Storyblok, Prismic — direct Google Search Console integrations have been conspicuously absent. Sanity's own analytics plugin (sanity-plugin-google-analytics) was deprecated and archived in 2023. The existing SEO plugins (sanity-plugin-seo, sanity-plugin-seo-pane) handle meta fields and content scoring, but none of them pull actual search performance data.
Until now.
Connecting Google Search Console to Sanity with PageBridge
PageBridge is an open-source Sanity plugin that brings Google Search Console data directly into Sanity Studio. Install it with:
npm install @pagebridge/sanityOnce configured, every document in your Sanity Studio gets a sidebar panel showing live GSC metrics — clicks, impressions, CTR, and average position — for that specific page. No tab switching. No URL copy-pasting. No waiting for the monthly SEO report.
What You Get
Inline performance metrics. Open any document in Sanity Studio and see its search performance right in the sidebar. Editors can check how a page is doing before, during, and after making changes.
Content decay detection. PageBridge monitors your pages and alerts you when rankings start dropping. Instead of discovering a traffic decline in a monthly report, your team gets notified while there is still time to act.
Striking distance queue. Pages ranking in positions 4–10 with high impressions are your biggest quick wins. PageBridge surfaces these automatically so your team knows exactly where to focus optimization efforts.
Intent vs. reality comparison. Set target keywords for a document and see how they compare against the queries Google actually ranks you for. This closes the gap between what you think a page targets and what it actually attracts.
Slack and Discord alerts. Get notified in your team's channels when revenue-critical pages slip in rankings — even when nobody is in Sanity Studio.
How It Works Under the Hood
PageBridge syncs your Google Search Console data nightly (configurable) and caches it in your own Postgres database. The plugin reads from this cache to display metrics in the Sanity sidebar.
A few things worth noting about the architecture:
- Your data stays yours. PageBridge never accesses your content and never sends data to third parties. Metrics are stored in a Postgres database you control.
- URL mapping is configurable. Headless CMS setups often have URL structures that differ from what Google sees. PageBridge includes a URL resolver you can customize to match your routing.
- It works with any content type. Blog posts, landing pages, documentation — if it has a URL and appears in Search Console, PageBridge can track it.
Setting It Up
1. Install the Plugin
npm install @pagebridge/sanity2. Add It to Your Sanity Config
import { defineConfig } from 'sanity'
import { gscPlugin } from '@pagebridge/sanity'
export default defineConfig({
// ... your existing config
plugins: [
gscPlugin({
contentTypes: ['post', 'page'], // your document types
}),
// ... other plugins
],
})3. Connect Google Search Console
PageBridge uses OAuth to authenticate with Google Search Console. The setup involves creating a GCP project, enabling the Search Console API, and configuring OAuth credentials. The documentation walks through each step.
4. Set Up the Data Sync
Configure a nightly cron job that pulls fresh data from the Search Console API into your Postgres database. PageBridge provides the sync script — you just need to schedule it.
Once the first sync completes, open any document in Sanity Studio and you will see search performance data in the sidebar.
Who This Is For
PageBridge is designed for teams where search performance directly impacts business outcomes:
- Content teams with 100+ published pages who cannot manually check performance for every piece of content
- SEO-driven organizations that need editors to make data-informed decisions without depending on the SEO team for every data pull
- Agencies managing multiple Sanity sites that need a scalable way to monitor content health across clients
If your team publishes content in Sanity and cares about how that content performs in search, this closes the feedback loop that has been missing from the headless CMS workflow.
Closing the Loop
The gap between content creation and content performance is not a new problem. WordPress solved it with Site Kit and Yoast. HubSpot built it in natively. The headless CMS world has been the outlier — until now.
With PageBridge, Sanity editors get the same closed feedback loop: publish content, see how it performs, optimize based on real data, and repeat. All without leaving the studio.
The plugin is open-source and free to self-host. If you want help with the setup — GCP configuration, OAuth, Postgres, the cron job — PageBridge also offers a Done-For-You implementation sprint.
Check out pagebridge.io to get started.
