How to Set Up a Soccer League Website with SportsPress
A soccer league website used to mean either paying a developer or wrestling with a generic CMS until something kind of worked. SportsPress changed that. It’s a free WordPress plugin built specifically for sports clubs and leagues, and it handles soccer out of the box.
If you can install a WordPress plugin, you can set up a working league site in an afternoon. League tables that calculate themselves. Match pages with results and box scores. Player profiles with season stats. A fixtures calendar visitors can subscribe to.
Here’s the full walkthrough, from a fresh WordPress install to a live site with fixtures, results, and a working table.
Before you start
You need a WordPress site. Any host that runs WordPress will do. One thing to check first: go to Settings > Permalinks and pick anything other than “Plain.” “Day and name” is the standard choice. SportsPress uses custom post types for events, players, and teams, and the Plain permalink setting breaks scheduled fixtures. This is a five-second fix that saves hours of confusion later.
Have your basic content ready: team names, a logo for each, a list of players per team, and your competition format (league, knockout, or both). You don’t need everything upfront, but it helps.
Step 1: Install the plugin
In your WordPress admin, go to Plugins > Add New and search for “SportsPress.” Install and activate.
A setup wizard launches automatically. Walk through it. You’ll be asked for a site name, default sport, and whether to load demo content. Demo content is useful the first time around because it shows you what a finished site looks like. You can wipe it later from Tools > Delete Demo Data.
Step 2: Choose the Soccer preset
When the wizard asks for your sport, pick Association Football (Soccer). This single choice configures dozens of settings at once.
Behind the scenes, the preset sets up:
- League table columns: played, won, drawn, lost, goals for, goals against, goal difference, points
- Points awarded: 3 for a win, 1 for a draw, 0 for a loss
- Player stats tracked: goals, assists, yellow cards, red cards, minutes
- Standard event result fields for match scores
You can tweak any of this later under SportsPress > Configure. For now, take the defaults. They match how soccer is scored at every level from Sunday league to UEFA.
If you change your mind later, you can switch presets, but it’s cleaner to start with the right one.
Step 3: Set up competitions and seasons
Soccer sites usually run more than one competition (a main league, a cup, maybe a reserves division) and more than one season. SportsPress handles both with taxonomies.
Go to Events > Competitions and add each competition you’ll cover. Examples: Premier Division, Reserve League, County Cup. You can add more later.
Then go to Events > Seasons and add the seasons you’ll use. Most leagues use a year span like “2025/26” or just “2025.” Make whatever convention works for your league.
Every event, team, table, and player list you create from now on can be filtered by competition and season. This is what lets you keep five years of history on one site without it turning into a mess.
Step 4: Create your teams
Go to Teams > Add New and create one team per club in your league. For each team, fill in:
- Team name
- Featured image (this becomes the team logo across the site)
- Competitions and seasons the team plays in
- Optional: home venue, abbreviation, manager
You can also add a description, which appears on the team’s profile page along with the team’s events, fixtures, and results.
If you have a lot of teams, the CSV import under Tools > Import speeds this up. Export a sample CSV first to see the column layout, then fill in your data and import.
Step 5: Add players and assign them
Go to Players > Add New for each player. The important fields:
- Name and photo
- Current team
- Past teams (optional, builds player career history)
- Squad number
- Position (Goalkeeper, Defender, Midfielder, Forward, plus subs)
- Nationality, date of birth (optional)
Each player gets a profile page with a stats table that updates automatically as you log match results. You don’t enter season totals manually. SportsPress sums them from event box scores.
For a 10-team league with full squads, this is the longest part of setup. CSV import helps here too. If you only have time for one team’s roster, do that team and add others as the season goes on.
Step 6: Set up the league table
Go to Tables > Add New. Give the table a name (usually the competition name, like “Premier Division 2025/26”). Pick the competition and season. Save.
That’s it. SportsPress generates a league table with all teams in that competition and season, with columns for played, won, drawn, lost, goals for and against, goal difference, and points. As you enter event results, the table updates itself.
To put the table on a page, use the shortcode shown on the table’s edit screen, or drop a Table block in the page editor and pick your table.
You can have multiple tables on the same site. Most league sites have one per division.
Step 7: Create events (matches and fixtures)
Go to Events > Add New for each match. Fill in:
- Date and time
- Competition and season
- Two teams (home and away)
- Venue (optional)
Save the event as a scheduled fixture. It’ll show up in calendars and on team pages right away.
For a full season, you can either add events one at a time or import the whole fixture list via CSV. The import handles dates, times, teams, and venues. It’s the fastest way to get a 30-match season into the site.
Step 8: Enter results and box scores
After a match is played, open the event and enter:
- Final score (home and away goals)
- Box score: which players from each team played, plus their stats (goals, assists, yellow cards, red cards, minutes)
Saving the event triggers two automatic updates. The league table recalculates with the new result. Each player’s season stats update with their box score numbers. No manual recalculation, no spreadsheets.
If a result was wrong or needs editing later, just update the event and save. Everything recalculates.
Step 9: Display the calendar
Go to Calendars > Add New. Pick a layout: Calendar (a traditional month grid), List (a clean vertical list of fixtures), or Blocks (a card-style layout that looks good on mobile).
Filter by competition and season. Save. Use the shortcode or block to drop the calendar onto your fixtures page.
SportsPress also generates an iCal feed for each calendar. Visitors can subscribe in Google Calendar, Apple Calendar, or Outlook and get fixtures pushed to their phone.
That’s a working soccer league site. Tables, players, fixtures, results, calendars, all calculating themselves from your match data.
What Pro adds for soccer leagues
The free plugin handles the league season itself. Pro is for the parts around it.
Tournaments. If your league has a cup competition or playoffs, the Tournaments module builds the bracket for you. Single elimination up to 64 teams, double elimination up to 8, with optional group stages feeding into knockouts. Results from group games flow through automatically.
Match Stats and Timelines. Match Stats shows animated bar graphs comparing both teams’ stats: shots, possession, corners, whatever you track. Timelines give you a visual play-by-play with goals, substitutions, yellow cards, and red cards plotted across the 90 minutes. Together they turn a result page into a proper match report.
Highlight Places. Color-code rows in the league table by position. Green for promotion, red for relegation, yellow for playoff places. Standard at every professional level. Pro does it in two clicks.
Past Meetings and Results Matrix. Past Meetings shows head-to-head history when two teams play each other. Results Matrix gives you a full season head-to-head grid (every team’s result against every other team in one view). Soccer fans love this stuff.
Team Access. If each club in your league has its own admin updating their roster and posting results, Team Access restricts each user to their own team’s data. Without it, every coach can edit every team. With it, the league runs itself.
League Menu. A global navigation bar with team logos across the top of the site. The kind of thing every pro league site has. Pro adds it as a single setting.
Final thoughts
SportsPress free is enough to run a real soccer league. People do it every weekend. Schools, Sunday leagues, university clubs, club sites in dozens of countries.
When you grow into a cup competition, signed sponsors, multiple coach admins, or want match pages that look like a Premier League report, Pro fits. The cup brackets alone usually justify the upgrade once your league runs a postseason.
Start with the free plugin. Get a season under your belt. When you hit the limits, you’ll know which Pro features matter to you.