This guide assumes no coding experience. Follow each step carefully.
- ✅ Access to your OJS website (as Administrator)
- ✅ Access to cPanel or FTP
- ✅ SEMrush, Ahrefs, or Google Search Console account
- ✅ 15-20 minutes of your time
What you DON'T need:
- ❌ API keys
- ❌ Programming knowledge
- ❌ Server command line access
- ❌ Composer or technical tools
Step 1: Log in to cPanel
- Open your web browser
- Go to your cPanel URL (usually: yoursite.com/cpanel)
- Enter your cPanel username and password
- Click "Log in"
Step 2: Open File Manager
- Find the "Files" section in cPanel
- Click on "File Manager"
- A new window opens showing your files
Step 3: Navigate to Plugins Folder
- In File Manager, look at the left sidebar
- Click on "public_html" to expand it
- Click on "plugins" folder
- Click on "generic" folder
- You should now see path:
public_html/plugins/generic/
Step 4: Create Plugin Folder
- At the top menu, click "+ Folder" button
- In the popup, type:
backlinkTracker - Click "Create New Folder"
- You should see a new folder called "backlinkTracker"
Step 5: Upload Plugin Files
- Double-click the "backlinkTracker" folder to open it
- Click "Upload" button at the top
- A new tab opens
- Click "Select File" button
- Select all plugin files from your computer:
- BacklinkTrackerPlugin.inc.php
- BacklinkTrackerSettingsForm.inc.php
- BacklinkHandler.inc.php
- index.php
- version.xml
- And all folders (templates, locale)
- Wait for upload to complete (green checkmarks appear)
- Close the upload tab
- Go back to File Manager tab
Step 6: Verify File Structure
Your folder should look like this:
backlinkTracker/
├── BacklinkTrackerPlugin.inc.php
├── BacklinkTrackerSettingsForm.inc.php
├── BacklinkHandler.inc.php
├── index.php
├── version.xml
├── templates/
│ ├── settingsForm.tpl
│ └── backlinkDisplay.tpl
└── locale/
├── en_US/
└── en/
Step 1: Connect to FTP
- Open your FTP client (FileZilla, etc.)
- Enter your FTP credentials:
- Host: your-site.com
- Username: your FTP username
- Password: your FTP password
- Port: 21
- Click "Connect"
Step 2: Navigate and Upload
- On the right side (server), navigate to:
/plugins/generic/ - Create folder:
backlinkTracker - Enter the folder
- Drag and drop all plugin files from your computer (left side) to server (right side)
- Wait for upload to complete
Step 1: Log in to OJS
- Go to your journal's website
- Click "Login" (usually top right corner)
- Enter your administrator username and password
- Click "Sign In"
Step 2: Navigate to Plugins
- At the top menu, click "Settings"
- From dropdown, click "Website"
- On the left sidebar, click "Plugins"
- You'll see a list of plugins
Step 3: Find and Enable
- Scroll down to "Generic Plugins" section
- Look for "Backlink Tracker"
- If you see it, great! If not, check Part 5 (Troubleshooting)
- Check the checkbox next to "Backlink Tracker"
- The row should turn green/highlighted
- Plugin is now enabled!
Step 1: Open Settings
- Still on the Plugins page
- Find "Backlink Tracker"
- Click the blue arrow (▼) next to it
- Click "Settings"
- A popup window appears
Step 2: Configure Repository Galley Label
In the settings form:
- Find "Repository Galley Label" field
- Enter:
REPO- Or whatever label you use for repository/full-text links
- Common alternatives:
Repository,Full Text,Full-Text
- This tells the plugin which galley contains your WordPress/repository URL
Step 3: Save Settings
- Scroll down in the popup
- Click "Save" button
- You should see a green success message
- Close the popup window
✅ Plugin is now installed and configured!
Step 1: Log in to SEMrush
- Go to: https://www.semrush.com/
- Sign in with your account
Step 2: Access Backlink Analytics
- In left sidebar, click "Link Building"
- Click "Backlink Analytics"
- Enter your domain (e.g.,
yourjournal.org) - Click "Search"
- Wait for analysis to complete
Step 3: Export Backlinks
- Click the "Backlinks" tab
- At the top right, click "Export" button
- Choose "CSV" format
- Click "Download"
- File downloads to your computer
- Remember where you saved it!
Step 4: Upload to Plugin
- Back in OJS, go to Settings → Website → Plugins
- Find "Backlink Tracker", click arrow, click "Settings"
- In the popup, find "Upload Backlinks Data" section
- Click "Choose File" button
- Find and select the CSV file you just downloaded
- Click "Upload Backlinks" button
- Wait 5-10 seconds (don't close window)
- You should see: "Successfully imported X backlinks"
- Close the settings window
✅ Backlinks are now uploaded!
Step 1: Access GSC
- Go to: https://search.google.com/search-console
- Sign in with your Google account
- Select your journal property
Step 2: Export Links
- In left sidebar, click "Links"
- Under "Top linking sites", click "MORE"
- Click "Export" → "Download latest links"
- Choose "CSV" format
- File downloads to your computer
Step 3: Upload to Plugin Follow Step 4 from SEMrush instructions above.
Step 1: Log in
- Go to: https://ahrefs.com/
- Sign in with your account
Step 2: Site Explorer
- Click "Site Explorer"
- Enter your domain
- Click search
Step 3: Export Backlinks
- Click "Backlinks" in left sidebar
- Click "Export" button
- Choose "CSV" format
- Download file
Step 4: Upload to Plugin Follow Step 4 from SEMrush instructions above.
If you have articles hosted on both OJS and a separate repository (like WordPress), follow these steps:
Step 1: Edit an Article
- In OJS, go to "Submissions"
- Click "Active" or "Published"
- Find an article, click on it
- Click "Publication" tab
Step 2: Add Galley
- Click "Galleys" (in the left menu)
- Click blue "+ Add Galley" button
- A form appears
Step 3: Configure Repository Galley
- Label: Enter
REPO(exactly as configured in plugin settings) - Select radio button: "This galley will be available at a separate website"
- URL: Enter the full repository URL
- Example:
https://repository.yoursite.com/article/article-title/ - Make sure it's the complete URL
- Example:
- Click "Save"
Step 4: Verify
- View the article on your public website
- Scroll down to see "External References to this Article"
- Backlinks should now show whether they point to "Abstract Page" or "Full Text"
Repeat for other articles that have repository versions.
Step 1: View an Article
- Go to your journal's public website
- Navigate to any published article
- Scroll down the page
Step 2: Find External References Section
- Look for section titled: "External References to this Article"
- It should appear after the abstract (or wherever you configured it)
Step 3: Check Display
You should see:
- Total reference count (e.g., "21 references from 12 unique sources")
- List of domains
- Click on a domain to expand and see individual backlinks
- Each backlink shows:
- Referring page URL
- Anchor text
- Reference target (Abstract Page or Full Text)
If you see "No external references found":
- This is normal if:
- No backlinks exist for this article in your CSV
- Article URL doesn't match any target URLs in CSV
- Article is very new
When to update:
- Monthly for active journals
- Quarterly for established journals
- Whenever you want fresh data
How to update:
- Export fresh CSV from SEMrush/Ahrefs/GSC
- Go to Plugin Settings
- Upload new CSV file
- Done! All old data is replaced with new data
Important: Each upload completely replaces old data. There's no merging or adding.
Possible causes:
- Files in wrong location
- File permissions issue
- Plugin files incomplete
Solution:
- Check file location is:
plugins/generic/backlinkTracker/ - Not:
plugins/generic/BacklinkTrackerPlugin/(wrong name) - Not:
plugins/backlinkTracker/(missing "generic" folder) - In cPanel, right-click folder → "Change Permissions"
- Set to 755 (or check: Read, Write, Execute for owner)
- Clear OJS cache:
- Go to Administration → Clear Data Caches
- Or manually delete "cache" folder in OJS root
Error: "Invalid file format"
Solution:
- Make sure file is CSV format (.csv extension)
- If you have Excel file (.xlsx), convert it:
- Open in Excel/LibreOffice
- File → Save As → CSV (Comma delimited)
- Upload the new CSV file
Error: Upload times out or fails
Solution:
- File might be too large
- Try exporting fewer backlinks (filter by date in SEMrush/Ahrefs)
- Or split into multiple uploads (upload will replace, not add)
Possible causes:
- CSV uploaded but URLs don't match
- Article doesn't have backlinks in your export
- URL format mismatch
Solution:
- Check the CSV file - find your article's URL
- Copy the "Target url" column value
- Compare with your OJS article URL
- They must match exactly (except query parameters)
- Example matches:
- CSV:
https://yoursite.com/article/view/123 - OJS:
https://yoursite.com/article/view/123✅ - OJS:
https://yoursite.com/article/view/123/✅ (trailing slash OK) - OJS:
https://yoursite.com/article/view/456❌ (different article)
- CSV:
Solution:
- Make sure plugin is enabled (green checkbox)
- Clear browser cache (Ctrl+Shift+Delete)
- Hard refresh page (Ctrl+F5 or Cmd+Shift+R)
- Check browser console for errors (F12 → Console tab)
- Verify JavaScript is enabled in browser
Cause: URL matching is too broad or CSV has incorrect data
Solution:
- Plugin uses exact URL matching
- Check your CSV export - verify target URLs are correct
- Re-export and upload fresh CSV
- If problem persists, check REPO galley URLs are accurate
The "External References" section appears after the Abstract by default.
To change position:
- Read the included
PLACEMENT_GUIDE.md - Edit your theme's
article_details.tplfile - Move the
{call_hook name="Templates::Article::Main"}line - Popular positions:
- After Usage Statistics
- After Author Biographies
- At end of article
Recommended: Ask your web developer if you're not comfortable editing template files.
If you're stuck:
- ✅ Re-read this guide carefully
- ✅ Check the Troubleshooting section
- ✅ Read README.md for more details
- ✅ Check PLACEMENT_GUIDE.md for customization
- ✅ Visit OJS forum: https://forum.pkp.sfu.ca/
- ✅ Review OJS docs: https://docs.pkp.sfu.ca/
- ✅ Contact your system administrator
Regular tasks:
- Upload fresh CSV monthly/quarterly
- Monitor article pages to verify display
- Update REPO galleys for new articles
No maintenance needed for:
- Server configuration
- Database optimization
- Cache management
- API renewals (no APIs used!)
- ✅ No API keys stored
- ✅ No external services called
- ✅ CSV data sanitized on upload
- ✅ All data stored securely in database
- ✅ XSS protection on display
Your data is safe!
For those curious:
- Upload: CSV parsed, converted to JSON, stored in database
- Article Page Load: Plugin checks database for matching URLs
- Display: JavaScript renders backlinks grouped by domain
- Performance: Single database query, no API calls
Result: Fast, reliable, zero external dependencies!
Your Backlink Tracker plugin is now:
- ✅ Installed
- ✅ Configured
- ✅ Displaying backlinks on articles
- ✅ Ready to showcase your article impact!
Enjoy tracking your journal's external references!
Plugin Version: 1.0.0
Last Updated: November 2025
Compatible: OJS 3.4+