All projects
Web · October 2025
Auto keyword generation & internal linking for WordPress

A WordPress system that automatically generates relevant keywords for internal linking with the Internal Link Juicer PRO plugin. The tool extracts keys from headings and SEO fields, cleans them with Polish stopwords, prioritizes them by source and writes them in ILJ's native format. Built for large news sites with tens of thousands of posts.
What was built:
- Per-post generation pipeline: content extraction (H1, H2, Rank Math Focus Keywords) -> n-gram building (bigrams/trigrams) -> filtering -> prioritization -> writing to ILJ
- Keyword prioritization by source reliability: Focus Keyword -> H1 -> H2 -> frequent n-grams
- Polish stopword filtering (239 words), length filter (2-6 words), normalization and dedup
- Internal Link Juicer PRO integration: writing to the plugin's native meta field as a flat array of strings and syncing the counter in wp_options
- Batch processing (batch of 200 posts) with pauses, memory monitoring and cache clearing — no server strain
- Detailed structured logging, run via WP-CLI / standalone script
- Modular architecture of 7 classes (~2500 lines of PHP) around the KeywordGenerator coordinator
Pilot results: 101 posts, 859 keywords, 8.5 per post on average; designed for a scale of ~28k and ~19k posts across two sites.
Stack: PHP 8.3, WordPress 6.7, Internal Link Juicer PRO, Rank Math PRO, MySQL/MariaDB, WP-CLI, Varnish, Bash/cron.
Role: end-to-end design and development of the tool (backend, PHP/WordPress).
Project screens

Screen 1 
Screen 2 
Screen 3 
Screen 4