Skip to content

Simple rank tracking off of 3rd party api with advanced data features

License

Notifications You must be signed in to change notification settings

pshapiro/rankenberry

Repository files navigation

rankenberry-logo Rankenberry: SEO Rank Tracker

License: AGPL v3

"A simple rank tracking application leveraging a 3rd party API with advanced data features."

Project Overview

This SEO Rank Tracker is a web application that allows users to track search engine rankings for specified keywords across different projects. It utilizes multiple 3rd party APIs to fetch SERP data, such as SpaceSERP (lifetime deal on AppSumo), and search volume information, providing advanced features for data analysis and visualization.

Key Features

  • Project-based keyword tracking
  • SERP data fetching and storage
  • Rank tracking over time
  • Search volume tracking with 30-day update intervals (via Grepwords)
  • Advanced data filtering and visualization
  • Keyword tagging system
  • Historical data viewing and exporting
  • User-friendly interface built with Vue.js
  • Google Search Console integration
  • Business impact estimation based on rank changes

Tech Stack

  • Frontend: Vue.js 3 with Vite
  • Backend: Python with FastAPI
  • Database: SQLite
  • API Integrations:
    • SpaceSERP for SERP data (lifetime deal on AppSumo)
    • Grepwords for search volume data
    • Google Search Console API for additional search data

Installation

  1. Clone the repository:

    git clone https://github.com/your-username/seo-rank-tracker.git
    cd seo-rank-tracker
  2. Set up the backend:

    cd backend
    python -m venv venv
    source venv/bin/activate  # On Windows use `venv\Scripts\activate`
    pip install -r requirements.txt
  3. Set up the frontend:

    cd ../frontend/rankenberry-frontent
    npm install
  4. Install additional JavaScript libraries:

    npm install axios pinia v-calendar plotly.js-dist-min
  5. Create a .env file in the backend directory and add your API keys:

    SPACESERP_API_KEY=your_spaceserp_api_key_here
    GREPWORDS_API_KEY=your_grepwords_api_key_here
    GOOGLE_CLIENT_ID=your_google_client_id_here
    GOOGLE_CLIENT_SECRET=your_google_client_secret_here

    To obtain your Google Search Console API credentials:

    1. Go to the Google Cloud Console.
    2. Create a new project or select an existing one.
    3. Enable the Google Search Console API for your project.
    4. Go to the "Credentials" section and create a new OAuth 2.0 Client ID.
    5. Choose "Web application" as the application type.
    6. Add authorized redirect URIs (e.g., http://localhost:5000/oauth2callback for local development).
    7. After creating, you'll receive a Client ID and Client Secret. Use these in your .env file.

Additional JavaScript Libraries

  • axios: Promise-based HTTP client for making API requests.
  • pinia: State management library for Vue.js applications.
  • v-calendar: Calendar and date picker component for Vue.js.
  • plotly.js-dist-min: JavaScript graphing library for creating interactive charts.

These libraries are essential for the functionality of the frontend application. They handle API communication, state management, date selection, and data visualization respectively.

Getting Started

Prerequisites

  • Node.js (v14 or later)
  • Python (v3.8 or later)
  • pip (Python package manager)

Running the Application

  1. Start the backend server:

    cd backend
    uvicorn app:app --reload
  2. In a new terminal, start the frontend development server:

    cd frontend/rankenberry-frontent
    npm run dev
  3. Open your browser and navigate to http://localhost:5173 to use the application.

Usage

  1. Add a new project with a domain.
  2. Add keywords to track for each project.
  3. Fetch SERP data for your keywords.
  4. View and analyze ranking data over time.
  5. Use the tagging system to organize and filter keywords.
  6. View historical data for individual keywords.
  7. Export keyword history data as needed.

New Features

  • Search Volume Tracking: The application now fetches and stores search volume data for keywords, updating every 30 days.
  • Keyword Tagging: Users can add tags to keywords for better organization and filtering.
  • Historical Data Viewing: A new modal allows users to view and export historical data for individual keywords.
  • Improved Data Visualization: The rank table includes more detailed metrics and allows for advanced filtering.
  • Async Scheduler Integration: Utilizes AsyncIOScheduler for asynchronous job scheduling, ensuring that scheduled tasks are properly awaited and executed without issues.
  • Resilient Scheduling System: Enhanced error handling and logging for scheduled tasks to ensure reliability and easier debugging.
  • Google Search Console Integration: Fetches additional search data to complement SERP information.
  • Business Impact Estimation: Calculates potential business impact based on rank changes, considering factors such as:
    • Current and previous keyword rankings
    • Search volume for the keyword
    • Click-through rates (CTR) for different ranking positions according to yoour GSC data (and fallback to industry standard CTRs if not available)
    • User-defined conversion rates and conversion values This feature helps users understand the potential traffic and revenue implications of ranking changes, providing valuable insights for SEO strategy.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Acknowledgments

  • Thanks to SpaceSERP for providing the SERP data API
  • Thanks to Grepwords for providing the search volume data API
  • Vue.js and FastAPI communities for their excellent documentation and tools

TODO

For a list of planned features and improvements, please see our TODO list.


Note: The SpaceSERP link is an affiliate link, which means I may receive commission if you sign up from those links.

About

Simple rank tracking off of 3rd party api with advanced data features

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published