A Java/Spring Boot MVP that fetches a public web page, scores common on-page SEO signals, checks target-keyword relevance, and can optionally inspect Google results through SerpApi.
The project includes a responsive, interactive frontend served by Spring Boot. After starting the application, open:
http://localhost:8080
Enter a public page URL and an optional target keyword. The dashboard displays the SEO score, page metrics, priority recommendations, detailed checks, and optional ranking results.
- Title and meta-description lengths
- One clear H1
- Content depth and target-keyword relevance
- Image alt text
- Canonical URL, viewport, robots/noindex, and JSON-LD
- Internal and external link counts
- Optional keyword position and top competitors
The score is a useful audit checklist, not a promise of Google ranking. Real rankings also depend on backlinks, search intent, location, personalization, site authority, Core Web Vitals, and many other signals. Font choice is mainly a readability and performance concern, not a direct ranking lever.
Requires Java 21 and either Gradle or Maven.
GRADLE_USER_HOME="$PWD/.gradle-home" gradle bootRun
# or: mvn spring-boot:runTo enable ranking lookup, create a SerpApi account and provide its API key:
export SERPAPI_API_KEY="your-key"
GRADLE_USER_HOME="$PWD/.gradle-home" gradle bootRunDo not scrape Google result pages directly; it is brittle and may violate its terms. The ranking adapter can later be replaced with DataForSEO, Bing Web Search, or another approved provider.
curl -X POST http://localhost:8080/api/analyze \
-H 'Content-Type: application/json' \
-d '{
"url": "https://example.com",
"keyword": "car rental",
"includeRanking": false
}'includeRanking should only be true when SERPAPI_API_KEY is configured. The API returns the score, grade, page summary, individual checks, actionable recommendations, and optional ranking results.
- Add robots.txt and sitemap crawling with strict page/depth limits.
- Integrate PageSpeed Insights for Core Web Vitals and mobile performance.
- Store audits so users can compare changes over time.
- Add competitor-page comparison and backlink data from an approved provider.
- Add authentication, rate limiting, DNS rebinding protection, and a fetch-worker network sandbox.