SEO

Themes ::: theme_seo
Maintained by Mohammad Farouk
SEO superpowers for your Moodle site — meta tags, sitemaps, and schema, all without touching your theme. Zero style changes, maximum search visibility. Get your Moodle courses found. Automated SEO for every page, profile, and post. A transparent SEO layer for Moodle — plug it in, keep your theme, rank higher. Stop hiding in plain sight. SEO tools built deep into Moodle, not bolted on top.
Latest release:
51 sites
93 downloads
4 fans
Current versions available: 2
Moodle Plugin

Moodle "SEO" Theme

An SEO theme for Moodle designed to optimize pages for search engines. This is not a style theme — your original theme templates and styles are preserved. Simply select your current theme as the parent theme in the settings.

Version 2.1 is here with much better performance and stability.

  1. Go to Site Administration → Appearance → Themes → SEO Settings
  2. Choose your current theme as the parent theme.
  3. Go back to themes and select SEO as the active theme — no visual styles will be changed.

Page meta tags

🏷

Keywords

Generates keywords from tags present in the page context. Allows overriding or appending to existing keywords.

Available
📝

Title

Moodle generates titles automatically. Page headings serve as a fallback for plugin pages. Admins can override via SEO Manager.

Available
📄

Description

Auto-generates descriptions for home pages, courses, public profiles, blogs, categories, and local_pg pages. Manually override via SEO Manager.

Available
🤖

Robots

Auto-adds a robots meta tag with follow, index instructions. Admins can add noindex to specific pages via SEO Manager.

Available Advanced options: soon
🔷

Schema markup

Auto-generated for course pages. Can be overridden for any page by advanced users via SEO Manager.

Courses Categories, blogs: soon

Page live analysis

SEO score
Keyword density
Title & description length
Heading structure
Keyword density in title & content
Internal & external links
Broken link detection
Guest / crawler preview
Redirect detection & URL
Page load time
Page download size
Crawler visibility check

Auto-generation

🗺

Sitemap

  • ✓ Home page, visible courses & categories
  • ✓ Public blogs and local_pg pages
  • ✓ Include / exclude pages via SEO Manager
  • ✓ Custom URLs supported
🤖

robots.txt

  • ✓ Includes generated sitemap URL Weekly via cron
  • ✓ Automatically excludes admin path

Roadmap

1 Options to serve robots.txt and sitemap using a router.
2 Generate schema markup for categories, blogs, public profiles, and custom pages.
3 Create schema markup with a user-friendly form interface, not just for advanced users.
4 Full sitemap control with a user-readable report and easy editing and adding of entries.

Screenshots

Screenshot #0
Screenshot #1
Screenshot #2
Screenshot #3
Screenshot #4
Screenshot #5
Screenshot #6
Screenshot #7

Contributors

Mohammad Farouk (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments

Show comments
  • Plugins bot
    Tue, 1 July 2025, 5:19 PM
    Approval issue created: CONTRIB-9963
  • Dave Foord
    Mon, 17 Nov 2025, 10:41 PM
    This plugin looks interesting - the description mentions that the plugin is currently BETA, and yet to be completed for Stable version - how is the testing going? How long do you think before it will be 'stable'?
  • Dr Tutor
    Thu, 18 Dec 2025, 7:05 PM
    it is not working
  • Mohammad Farouk
    Mon, 13 Apr 2026, 7:44 AM
    The newer version 2.1 is here for moodle 5.0 and 5.1 and works fine with better options and stability
  • Wazza
    Mon, 13 Apr 2026, 5:01 PM
    @Mohammad Farouk, on installation it breaks my Moodle site. You write as instruction:

    1. Go to Site Administration → Appearance → Themes → SEO Settings
    2. Choose your current theme as the parent theme.
    3. Go back to themes and select SEO as the active theme — no visual styles will be changed.

    But you can never get the option to go to step 2, because after installation you get this error 'Exception - Call to undefined function theme_seo_get_parent_theme()'. Which makes sense, because this would probably be step 2.

    Try a clean install yourself. It probably works perfect as an update for an old version, but on a clean install I think we are experiencing a chicken-egg problem smile
  • Mohammad Farouk
    Mon, 13 Apr 2026, 6:16 PM
    Hello Richard, I tried fresh install on moodle 5.0, 5.1 and no problem during installation, the function 'theme_seo_get_parent_theme()' only get called from the config file at which I made sure included before calling
    Make sure this is the latest version of the theme 2.1
Please login to post comments