Rankenberry: SEO Rank Tracker
"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
-
Clone the repository:
git clone https://github.com/your-username/seo-rank-tracker.git
cd seo-rank-tracker
-
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
-
Set up the frontend:
cd ../frontend/rankenberry-frontent
npm install
-
Install additional JavaScript libraries:
npm install axios pinia v-calendar plotly.js-dist-min
-
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:
- Go to the Google Cloud Console.
- Create a new project or select an existing one.
- Enable the Google Search Console API for your project.
- Go to the "Credentials" section and create a new OAuth 2.0 Client ID.
- Choose "Web application" as the application type.
- Add authorized redirect URIs (e.g., http://localhost:5000/oauth2callback for local development).
- 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
-
Start the backend server:
cd backend
uvicorn app:app --reload
-
In a new terminal, start the frontend development server:
cd frontend/rankenberry-frontent
npm run dev
-
Open your browser and navigate to http://localhost:5173
to use the application.
Usage
- Add a new project with a domain.
- Add keywords to track for each project.
- Fetch SERP data for your keywords.
- View and analyze ranking data over time.
- Use the tagging system to organize and filter keywords.
- View historical data for individual keywords.
- 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.