"A simple rank tracking application leveraging a 3rd party API with advanced data features."
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.
- 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
- 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
-
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
.envfile 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
.envfile.
- 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.
- Node.js (v14 or later)
- Python (v3.8 or later)
- pip (Python package manager)
-
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:5173to use the application.
- 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.
- 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
AsyncIOSchedulerfor 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.
Contributions are welcome! Please feel free to submit a Pull Request.
- 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
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.
