Building Simple Dashboards with Free Software

Leveraging Streamlit and Free APIs for a Zero-Cost SEO KPI Dashboard

If you’ve spent any time stitching together SEO reports from Google Search Console, Google Analytics 4, and a handful of third‑party tools, you know the pain of toggling between tabs, exporting CSVs, and praying your VLOOKUPs don’t break. The conventional answer is to throw money at premium platforms like Data Studio’s paid connectors or a SaaS dashboard that charges per seat. But for the engineer‑minded marketer who prefers to own their data pipeline, there’s a more elegant path: build a lightweight, interactive dashboard using Streamlit, Python, and the free tiers of the APIs you already have access to.

Streamlit is an open‑source Python framework that turns scripts into shareable web apps with minimal boilerplate. You write a series of functions that pull, transform, and visualize data, and Streamlit handles the UI, the session state, and the deployment. For SEO dashboards, this means you can create a living, filterable view of your core KPIs without a single line of JavaScript or a monthly subscription. The catch? You need to be comfortable with Python and API authentication. If you can write a basic pandas loop and store a JSON key, you’re overqualified.

Start with the data sources that matter most. Google Search Console exposes your queries, pages, impressions, clicks, and average position through the Search Console API. Google Analytics 4 reports sessions, users, bounce rate (via custom events), and conversion data through the Data API. The free quotas for both are generous—Search Console allows 200,000 rows per day per property; GA4 lets you pull up to 100,000 rows per request. You can also tap the PageSpeed Insights API for Core Web Vitals and, if you’re feeling ambitious, the Bing Webmaster Tools API to cross‑reference organic traffic from the underdog search engine.

The trick is to build an ETL pipe that respects rate limits and caches aggressively. Streamlit’s built‑in `@st.cache_data` decorator lets you memoize API responses based on parameters like date range or property ID. Design your data fetching so that each API call is idempotent—meaning the same inputs always produce the same raw JSON—and cache it for the duration of your session or, if you host on Streamlit Community Cloud, until the app restarts. This reduces network overhead from minutes to milliseconds on subsequent interactions.

Once you have your data in pandas DataFrames, the real fun begins. Use `pd.merge()` to join Search Console impressions with GA4 session counts on a common key like URL path. Create calculated columns: average position per page, click‑through rate, conversion rate from organic traffic. For visualizations, Streamlit integrates natively with Plotly, so you can render interactive time‑series line charts of impressions vs. clicks, scatter plots of position vs. CTR, or a heatmap of top queries by device category. All of these update instantly when the user selects a new date range or filters by country.

Deployment is the final piece. Streamlit Community Cloud offers a free tier that runs your app from a public GitHub repository. You can set environment variables for API keys and grant the app read‑only access to your Google Cloud project’s OAuth scopes. The trade‑off is that the free tier idles after about seven days of inactivity and has a memory cap of 1 GB. For a personal SEO dashboard used by a small team, that limitation is rarely a bottleneck—your data volume is typically in the tens of thousands of rows, not millions. If you need persistent data storage, consider pairing with a free Supabase instance or simply dumping daily snapshots to a Google Sheet that the app reads on startup.

The ultimate payoff is sovereignty. You are not locked into any vendor’s data model, you can add custom metrics like “pages with position drop > 5 in the last week” as a Python expression, and you can push changes to your dashboard the same way you push code to any other project. The learning curve is real—your first hour will be spent wrestling with OAuth scopes and Google’s API client libraries—but once that skeleton is in place, adding a new metric or data source takes minutes. For the savvy marketer who already lives in the terminal, a Streamlit SEO dashboard is less a tool and more a philosophy: stop paying for what you can build, and start interrogating your data the way it deserves.

Image
Knowledgebase

Recent Articles

The Unseen Advantage: Why Manual Analysis Remains Indispensable

The Unseen Advantage: Why Manual Analysis Remains Indispensable

In an age dominated by sophisticated software and automated tools, the suggestion to engage in manual analysis can seem like a quaint anachronism, akin to navigating by paper map when GPS is available.The allure of tools is undeniable: they process vast datasets in milliseconds, generate polished visualizations, and promise objectivity free from human fatigue.

F.A.Q.

Get answers to your SEO questions.

How Do I Integrate Guerrilla SEO into a Sustainable Long-Term Strategy?
Treat guerrilla campaigns as “boost phases” within your evergreen SEO engine. Your foundation is pillar content and technical health. Schedule quarterly “sprints” where you ideate and execute one high-impact guerrilla project targeting a strategic gap. This could be a tactical partnership, a data study, or a community takeover. These sprints inject rapid authority signals and fresh content into your ecosystem, which your foundational strategy then consolidates and sustains, creating a compounding cycle of growth.
Where do I physically place my sitemap.xml file, and how do I reference it?
Upload your `sitemap.xml` file to the root directory of your website (e.g., `https://yourstartup.com/sitemap.xml`). This is the default, expected location for crawlers. You must then explicitly reference it in your `robots.txt` file by adding the line: `Sitemap: https://yourstartup.com/sitemap.xml`. This dual-action approach ensures discovery through both the standard location and the robots.txt directive. It’s a basic yet often-missed step that guarantees crawlers will find your map.
How Do I Measure the SEO ROI of a Free Tool Beyond Backlink Count?
Track a holistic funnel: 1) Organic Rankings: for target keywords and the tool’s brand name. 2) Link Quality: Domain Rating of referring pages and contextual placement. 3) Traffic Value: Tool page engagement metrics (time on page, return visits). 4) Lead Funnel: Conversions from tool user to email subscriber to qualified sales lead. 5) Brand Metrics: Increase in branded search and direct traffic. Use UTM parameters on all promotional links to attribute sign-ups. The tool should move multiple needles.
What Does a Truly Killer Guerrilla Outreach Email Look Like?
It’s hyper-personalized, concise, and value-first. Open with a specific compliment on their recent work (“I loved your take on X in your July post...“). Immediately state the clear, unique value you’re offering (a novel data set, an exclusive angle, a visual asset). Make the “ask” minimal—you’re suggesting an idea, not demanding a link. Include a clear, no-login-required link to the asset. Close with a low-commitment call-to-action (“Thought this might resonate with your readers. No worries if not!“). Proofread meticulously.
How Critical is Website Speed and UX for Asset Linkability?
Critically important, as it affects “link sink.“ A brilliant asset on a slow, cluttered site will have a high bounce rate, signaling to potential linkers that the user experience is poor. Use a lightweight theme, compress images aggressively, and leverage caching. Ensure your asset is easily scannable with clear headers, a table of contents, and no intrusive interstitials. You want the linker’s audience to have a flawless experience, which reinforces the linker’s decision and encourages future citations. Technical SEO is the silent partner of content.
Image