Optimal OPML Browser & WordPress Plugin

Description and Features

Optimal renders valid OPML from any source in a tree-like view ideal for browsing. Links to external OPML files as well as RSS, RDF, and Atom feeds are expanded in place.

Optimal can be installed as a WordPress plugin -- it is the successor to my OPML Renderer for WordPress plugin.

Use Cases

  • Error reading XSL file
  • Several variables may be passed via the query string:

    [ Expand All | Collapse All ]
  • Error reading XSL file
  • Error reading XSL file
  • Gotchas

    Optimal tries to automatically discover where you've installed it. When that works, it makes your life easier. When it doesn't work, it can be an aggrevating experience. (Thanks for hanging in there, Chris!)

    If you're getting weird errors, especially "Error reading XSL file," you've probably been bitten. To solve this issue, you'll need to manually edit either (1) the plugin file optimalPlugin.php on lines 38 an 41, if you're using the plugin or (2) the file optimal.php on line 41, if you're not using the plugin. There are four path values: (1) the top-level file directory, (2) the top-level URL, (3) the path to your Optimal installation relative to the top-level, and (4) if different from the top-level file directory, the directory where any local OPML files are stored. After you've made any changes, you'll need to delete the file settings.optimal.inc if present in the directory where you've installed Optimal.


    The current version of Optimal is 0.4c.

    I strongly encourage you to download Optimal and install in on your own site, rather than relying on the availability (and using the bandwidth) of optimalbrowser.com.

    You can download it here.

    See the installation instructions, above. If you run into problems, feel free to leave a comment. I think the majority of problems will be related to either an incompatible server configurtation (PHP 5+ or 4.3+ with domxml and libxslt or Sablotron support: this test script, when run from your server, should tell you if your server is compatible) or failure to ensure your "_cache" subdirectory has world-writeable (777) permissions.


  • Error reading XSL file
  • Error reading XSL file
  • Error reading XSL file
  • History

    Optimal is based on my earlier OPML Browser, but was extensively rewritten to bring its code into closer synchronization with my OPML Renderer plugin for WordPress. This is now done, and Optimal can be installed as a plugin for WordPress.

    Optimal was named not out of sheer ego or to imply that it is the best OPML browser, but rather because "optimal" was the only good word I could think of in which I could camel-case OPML (i.e., OPtiMaL). However, the camel-casing is merely a meme, not the proper name.

    67 thoughts on “Optimal OPML Browser & WordPress Plugin

    1. I got the $optimal path issue resolved. but today your site throws an error parsing my opml files.. they worked yesterday. maybe you are hackin away over there...

    2. @Winston - Glad you fixed your problem. The errors you were seeing on my end should be fixed - bad server setting after a package upgrade. I think everything is fine now.

    3. Dan, thanks for this wonderfull plugin! However, I have two questions:

      - Is it possible to limit the amount of feed items being fetched from each feed in the rendered opml file?

      - I would like the title of the feed (as exposed next to the rss logo) turn into a link back to the website that offers it.

      Any suggestions?

      Thanks in advance!

    4. I know OPML Renderer is deprecated, but can I use the OPML Renderer plugin instead of Optimal? Optimal seems to be a large file to load - i.e. it seems it will slow my site.

      Or does Optimal only load when a .opml file is called?

    5. Jonathon, feel free to use whatever version you like, but I cannot imagine how Optimal would slow your site any more than the older OPML Renderer.

    6. Dan, a great plugin, thanks. Installed 0.4c on my WP blog, works a treat. (Btw, my blog is running WP 2.5 and the plugin works fine).

      One thing I'd like to do but can't figure out how: on initial display, the plugin just shows a single line, the name of the OPML file. You then click on the little icon/arrow to expand the display to show the individual feed names within the OPML file.

      You can see it in place on my blog here: http://www.nevillehobson.com/connections/

      That's great but I'd like the display to be all of that from the start. I think the switch is the 'depth' variable? Well, I've tried all sorts of numbers there, nothing happens.

      I guess I'm missing something. Would you let me know how I can do what I'd like to? thanks.

    7. hi! I've been bitten!
      I get the "Error reading XSL file" error!

      I used to have your plugin running on my blog, it was fine. i migrated my service to MediaTemple, and now I get this odd error! The instructions "There are four path values..." however I cannot properly figure out. I've modified those lines to fit what I think should be the proper variables, and then I just get an error in web-browser reporting some break on line 38. can't figure it out. can you be more specific with what those lines, ABSPATH, DOCUMENT_ROOT, url, etc. should be?

      love the live loading of xml documents inside the plugin by the way. very smart. thanks!

    8. Pingback: My Web Handbook
    9. I have the optimal plugin installed on my self-hosted WP installation and it seems to serve the intended purpose. look on my links page f usage /link-page/

      One problem the past few months is that Optimal and / or Simple Pie are generating enormous .core files from feed errors and / discontinued feeds I am aggregating - I get disk warning messages from my host about once every two weeks - the .core files are always found in my wp-content/plugins/optimal folder.

      Am sure it would help if I went in and chk'd the error log and cleaned up dead feed links - any other insights?


    10. Hi, Richard. Thanks for the feedback. I have no idea what's dropping core dumps -- Optimal is certainly not set up to do that, and the last time I saw a core dump of any kind was probably 5 years ago playing with a buggy Mandrake Linux beta.

      The only things I can suggest are: (1) make sure that neither PHP nor Apache (or whatever web server you're running) is compiled with a "debug" flag enabled, and (2) do check your httpd error logs and see if you can find any errors that coincide with the creation date/time of the core dump file.

      While Optimal could certainly use some work to more gracefully fail upon feed errors, I have never seen it crash and cause a core dump.

    Leave a Reply

    Your email address will not be published. Required fields are marked *