Extension Notes: Aimy Sitemap 3.6.1

Like so many Joomla users, I was forced to find another sitemap extension in 2015. Aimy didn't make the cut; here's why not, and what it could do better.

Stages two and three of grief are summed up within -- I took the 'try anything' approach to replacing Xmap, between its disappearance and the announcement of higher-profile successors.I'll like Aimy Sitemap, eventually. I like the approach of crawling your actual website, as a basis -- I've wished for it, every now and then, whenever Xmap's quirks would push an unwanted category blog page to my site.

Oh, Xmap, how you always vexed us, by being only nearly perfect. It's as if your author thought getting the key things right on basically the first try, entitled him to just walk away... I digress, but this is also part of a series about the death of Xmap, formerly the only serious sitemap extension available for Joomla, and search for its replacement -- so, you might see a few roses laid in its wake, as we go.

Yes, I think I'll like Aimy Sitemap eventually. I'm just not confident enough in it, yet, for use on a live site -- neither as my primary HTML sitemap, nor my XML sitemap.

This is a shame, because it means I haven't confirmed via use, any replacement for Xmap, yet, at time of this article. Regardless, I'm looking forward to a future version of this extension, for reasons explained within.

.. just not the immediate future, for reasons also within.

In some ways, every review is an open letter to the creators, of the thing being reviewed. To that extent, dear Aimy Extensions: I know dev houses are driven by enthusiasm above all else but food; I really do look forward to future versions of this extension. Forgive me, if the humor I use to make this review engaging to read, feel at all brutish, but with version numbers like yours...

Anyway, here we go!

Aimy Sitemap post-install
They certainly do want to make a strong first impression! Let's see what's under the hood.

Because, now that I've said nice things, there are some unpleasantries. 

Naughty By Number in a Fools' Gold Rush 

For starters, I tut and shake my finger at the absurdity of calling this software, version 3-point-anything. Aimy Sitemap was first uploaded to the JED on February 24 of 2015, and I'm afraid it's just not finished yet. Software that is brand new and unfinished, is not version 3-point-anything -- it's not even supposed to be labeled version 1.0. Therefore I am immediately wary, because in my experience, embellishing a software's state of maturity via inflated version number, always leads directly to prematurely hyping its quality and usefulness.  

I accept that this software might have been in circulation outside of the JED prior to this year, and I also accept that it may have undergone a few rounds of tweaks. I simply find great distaste in a certain tech marketing strategy, of which this reminds me so precisely -- a tech marketing strategy I have hated since before the days of web browsers -- which is the presumed-as-grey-hat act of treating the version number, like something you can just inflate or even print more of, anytime you want to stimulate new downloads.

Future versions seem to be one thing Aimy Sitemap has in spades -- multiple revisions have been posted for download since I began this review, less than a week before posting it. I approve of frequent bugfixes, but in case you can't tell, I'm just not convinced this extension is at the stage when end users should be getting involved. Software that issues bugfixes at a rate of more than once per week, is often software that simply isn't done yet.

They seem to have been unsure of their technical requirements at public launch, too. Today, they say the extension requires PHP 5.3, "like Joomla! 3 itself", however when I downloaded it a week ago, it required PHP 5.4, also "like Joomla! 3 itself", with both quotes coming from successive revisions of their documentation page. The original requirement was posted as PHP 5.4, but changed a few days later.

So many things indicate to me this has been a rushed release, done not because Aimy Sitemaps was ready, but because Xmap had created buzz and a momentary vacuum, which demanded an inrush.

Therefore, to begin with, we have the good: they're taking community feedback into account for revisions. The bad: extensions like this really underscore the need, in the JED, for some way to mark an extension as somehow not ready for prime time. Perhaps if there was a notation available to programmers, signaling to the world at large that the presently-discussed piece of software, is shared only for testing. Then users might know to use it only with the intention to provide feedback, or at least with low expectations. Then the feedback would be received and turned into improvements, turn after turn, after which it might eventually, finally, be ready for actual use. At this point, I hardly need to repeat myself. I'm sure many readers, by now, can version number below 1.0 what I'm saying. 

So, while I think I'll like this new sitemap extension, eventually, I can't think of any use for it, in its current form. Nevertheless, I took notes. Here are my notes.

The Review; or The Roast

The extension's landing screen immediately after installation.
Here, I have magnified the significant parts of what you'll see after clicking ((Edit your sitemap now)) in the post-install screen.

Post-installation, the "please configure your sitemap here" link leads to the same interface, as the Options button, where I changed options as fit my site. A point in Aimy's favor: everything seemed to have actual effect -- there were no dummy controls. Also, nothing was tacked on -- all things implemented so far, are things essential to a sitemap extension.

At this stage, we're on the right track, and things work -- I began this review experience hopeful and impressed.

After this giant image, I'll talk a bit about some of the reasons why I'm still inclined give this extension another chance, someday.

The options for the extension.
Here are Aimy Sitemap's four component-specific option tabs, with modifications, some more useful than others. Pictured: humor among my additions to the Exclusion Pattern. Because, if you're going to exclude one type of image manually right, while approving a default option to include them, you might as well catch 'em all, right?

You'll notice I turned off notifications to search engines -- they don't need to know about my scrap testing sites.

My first absolute delight with this extension, was the first field, of the first tab, of its options -- thank you, thank you, thank you for simplifying the assignment of an SEF URL for the XML sitemap itself, down to a text field. It accepts simple names with no pretense of subdirectory or other extra embellishment allowed, only alphanumerics, hyphens, and underscores -- as I'd expect from a good programmer, in an extension within the first couple years of release.

No problems ... or so it seemed, at first. In fact? Potential costly disaster, as I'll explain further below. Meanwhile, back to configuring.

I Just Say No, to Notify

As for the penultimate tab, I did not look under the hood to dig-up all the triggers which lead to pinging Bing and Google, because I would not ever want my site to become a data nuisance -- as could happen, if you let a piece of software automatically blast XML files at them, every time your workflow conflicts with a programmer's expectations about what constitutes a good reason to wake the search giants.

For example, it might seem quite prudent, on some websites, to send a new sitemap to Google every time a URL alias is added, removed, or changed. However, if you're like me, and the revision count is a secondary objective on a scoreboard -- haven't you ever stayed up all weekend on a major revamp project? -- then, you know that in some workflows, the last thing you want, is for Google to notice every time you hit Save after making changes to an alias field.

Aimy Sitemap error message about crawling an SSL site.
Not pictured: Aimy's cartoon avatar pulling an 'awkward penguin' or a 'nope'.

The next bit of bad news goes to anyone who requires site encryption, and doesn't want to disable it for the sake of a sitemap: as of version 3.6.1, Aimy Sitemap doesn't crawl SSL. If you resume your SSL-only security policy after it crawls, it does serve links with https at the beginning. However, since it needs to crawl your site in order to build the sitemap, and isn't yet ready to crawl http+ssl links, most business webmasters operating under business logic that requires SSL, simply cannot use this version of the extension -- at least, not without installing it on a shadow site, copying the finished sitemap files, and modifying them via find-replace macro.

Here's what you'll see if you aren't using SSL:

Aimy Sitemap reports it is ready to crawl a Joomla site.
Since this is a test site, I temporarily disabled SSL on that site, in order to proceed with the review. Here's what you'll see on the first try, if your site doesn't use SSL, aka site encryption.

For the sake of an article, I commented-out a couple lines of a file in my /etc/apache2/sites-enabled folder, restarted Apache, and proceeded.

The two stages of the slideshow displayed while the extension crawls your site.
Don't fall in love! She's a beauty; She's one in a million girls! Why would I lie?

Aimy Extensions really likes its mascot -- I don't blame them, as I, too, have taken note of NoNumber's style guide in action, and found it good. While the component crawls your site, you get a slideshow, which I've depicted badly via diagram, above. It reminded me of the installer for Windows operating systems, selling me something I already have, with a tiny bit of screen space devoted to information about the process at hand. 

After the crawler does its job, you're shown a report:

The post-crawl report.
Not to be confused with a retort, which is what I might receive from the author of this extension, if I don't tone down the jokes.

Here, it shows you the URLs it found, but did not add to your sitemap, sorted by reason.

You are not done.

The sitemap has not been written yet; and, it's a file, so not written, means it doesn't exist in the useful sense, or hasn't been updated. This, despite the fact that you can click Manage Your Sitemap Now! and be shown things to configure. This workflow detail can be easily overlooked in usage; but it also makes sense, given Aimy Sitemap's usage paradigm.

In other words: because this extension must crawl your site in order to be aware of URLs, and because it must be aware of URLs before it can let you set options for each of them, now is the step in the procedure where you set priority, frequency, and not name.

The post-crawl list view, where you edit individual items, before creating the sitemap, proper.
With a version number of 3.6 and so little information to convey to the users, I'd expect for those Priority fields to be AJAX-y drop-down menus, by now. The version-number-harping part of the article, is never over!

Here above, we see the tip of the list view for my scrappy scrap site, and below, the edit screen for an individual URL in the list.

The item detail / URL settings editor, for an individual URL, discovered by the extension during its crawl.
When it all boils down to who can slap the most responsive, best color-cued, friendliest cartoon-eyed interfaces, onto and around bushels of items with data sets this simple, you start to realize the internet has become the tribble race of industries, with every solution born pregnant of new needs for new solutions...

At the bottom of this screen I note, with almost as much glee as the filename option, that you can simply order Aimy Sitemap to omit specific links from front-end publication. Here, was cause for more glee at Aimy Sitemap, and a bit of teeth-grinding in Xmap's direction, the latter owing to how toys-simple it could have been, to add this item-level control to Xmap's feature-set.

There were no bulk tools in Aimy Sitemap 3.6.1, so once after editing every single URL in turn, or at least those you need to hide or assign other-than-default settings, you can finally write the sitemap, and potentially make your IT staff scream bloody murder at you for an hour.

The extension reports a successful write of the sitemap file.
The previous caption got kind of needlessly existential, plus we're about to get into some ugly news, so here is a soothing picture of a friendly system message, running through a field of divs. AS IT (potentially) OVERWRITES A FILE!

These sitemaps are actual files being written to your site's main folder. That's all well and good, except Aimy Sitemap didn't check before overwriting! Further, its default filename is sitemap.xml, a pretty likely filename collision for a very important file on a lot of websites. 

I did not check whether this tool makes it possible to replace, say, index.php or something likewise horrifying. I didn't want to have to tell my readers such a thing after such nice conversations with the extension's authors.

However, the lack of an overwrite check of sitemap.xml, is a big deal. Were you, dear reader, a website operator, merely testing this extension? Did you already have a sitemap.xml file? One, say, that you might have spent thousands of dollars on web IT support, over the years, to develop? You'd better have recent backups to restore it from, after seeing the above message, because it was silently overwritten, by arguably alpha-or-beta-quality software you were merely evaluating. 

Shame on you for evaluating strange software on a production website, but shame on the extension's creator, for calling this software, a release.

It's not that most Joomla sites are too keen on outputting static documents generally, although I often wish they would. It's just that there's no margin for error with file deletions and overwrites -- and it's just so easy for programmers, who want to foster user trust in order to gain sales, to check, first. 

To anyone who might someday read notes like this about their extension -- any extension programmer -- probably not the Aimy Extensions folks, as they've been courteous and productive and downright verbally handsome in email correspondence, but anybody -- and replies, to say this-or-that damning criticism is no longer relevant, because a new version now properly prevents such-an-issue, I say, good. But, next time, please keep a notebook handy, with a fat few pages banded together, labeled, "Critical Things I Might Forget Because I'm Rushing This Release With a Hard Deadline of Now, But Musn't Forget, Because My Reputation is Deeply Harmed When I Bone the Users", where you can note things like, "file overwrite check for sitemap filename". Meanwhile, let the user beware!

Really Getting the Public Service Rant Out Of My System

In reality, these 3.x versions of Aimy Sitemap are being downloaded mostly by people who make it their business to know about these events as they unfold. However, isn't that also the picture of the user whose organization is on top of things? Joomla's community volunteers, aren't the only bleeding-edge adopters of alternatives, when a high-profile extension goes poof like this. 

Between the version number, the release timing, the excellent marketing quality, and the mediocre, "early access" quality of the software, I feel it's warranted that I urge Aimy Extensions in this open way, please don't follow the leader on this aspect of your release patterns. You'll arrive at a better product users will say nicer things about, at about the same speed, if you just let your cycle include the introspection of QC, QA, and internal screenings, even unto actual screening, as a team, to air all the thoughts and nitpicks which haven't yet made it into commit because the internal procedure-venue didn't yet exist to pick nits.

Job One: XML Sitemap

An example of Aimy Sitemap's XML sitemap output.
Yes, now we can talk about sitemaps.

First, I can verify, item-by-item, it outputted what I requested via configuration - so, that's good. Compared to Xmap, it lacked dates of last update, and also lacks Xmap's more explicit document structure hints. It looks like the one structure hint they did include, would cover for what's missing, assuming xmlns sub-parameters work like CSS groups... but I'm not Google, nor have I had occasion to hand-write an XML sitemap in this decade, so ultimately, I don't know what's "enough" and what's extra-thorough.

Therefore, on the XML sitemap output itself, my verdict: in comparing it to Xmap, and seeing only redundant and refined information missing, it looks good enough to me. Were I to submit the URL to Google and get all-okay, I'd be satisfied... someday, when the extension which generated this XML, shapes up.

Once again, the core functionality pans out where it counts most. If my suspicion is correct, that the version numbering scheme of this extension is a lie, then this bodes well for the extension's future. This file output, which is Aimy Sitemap's primary goal, is immune to my complaints below about the HTML sitemap -- because search engines can use your URL patterns, and other, more advanced logic, to glean your site's structure after a crawl.

Also Starring: HTML Sitemap

The HTML sitemap, which I call the human sitemap, is widely viewed as less important than the XML sitemap. After all, Google is the sitemap of the internet. Google can help users find whatever they need on your site. Users didn't want to navigate your individual website and find what they need via some familiarity... they would all rather use Google to find everything, forever. Right?

Regardless of whether the above was sarcasm or wisdom or both, Aimy Sitemap seems to consider the HTML sitemap to be a secondary feature, both in its marketing language, and features. 

Choosing the HTML sitemap menu item type.
This software and I disagree about the meaning of the term "HTML sitemap".

I'm old-hat, old-school internet, and so if there's one thing I know, it's whatever I need to know in order to finish that sentence in a way that supports my argument. 

For example, I know that an HTML sitemap, is more complex than a flat list, unless we're dealing with a website with only a single, short menu, with no submenus -- no items grouped under other items, no nested outline structure. 

So that is why I say, to the above-captured screen showing the extension's menu item type, "nuh-uh." Or translated more broadly, "no, it doesn't."

Without that bare minimum outline-like structure, showing the relationship of pages as residing in sections and subsections, even a list of URLs for a small site, presented in this way, becomes far less useful than the word "sitemap" implies. 

An example of Aimy Sitemap's front-end HTML sitemap.
Not pictured: Me pulling an 'awkward penguin' or a 'nope.' But it happened.

Does your site have hundreds, thousands, or more pages, including articles, categories, products, images in galleries, downloadable media files, etc? They would be rendered as a plain bullet list with no built-in clues as to how to find anything using any method other than CTRL-F.

This could be salvaged, if the extension allowed control over names, so that persistent, custom naming decisions could be made, perhaps with ordering options, etc. However, as of 3.6.1, Aimy Sitemap did not allow direct control over the link text appearing on the HTML sitemap -- the HTML title tag it finds when it crawls, is the title the URL gets. They also said it was not yet planned for immediate addition. This means, if you rely on a "recent articles" module on your homepage, or your homepage is a Featured Articles type, your sitemap will consist largely of links to "Home" with varying URLs to your articles, because of issues which are almost outside of Aimy Sitemap's control, except for the decision to use them as the only link text option. 

I wrote them detailing my thoughts on much of this, admittedly framing them quite arrogantly as outright failings. I was told that name-editing, and/or some algorithms which work toward both sensible name control and outline detection, would be taken into consideration as a feature request.


I know all too well, how tempting it can be to produce a good marketing veneer, rush a field of opportunity in the digital marketplace with a smattering of offers only a handful of people will notice, and follow the search-marketer's wisdom, that tenure of existence is paramount to all including dignity. I've worked for random clients on the internet for 15 years. In particular, software is a preeminently American marketplace, and here, we are sadly accustomed to a wall market -- by which I refer to a wall upon which you throw things, to see if the magic combination of that thing sticking to that wall, and people gathering around to take note, occurs, as if by magic.

It is not magic. Quality plus perseverance equals success. While good timing is a lot like the old brick and mortar adage (the three most important things are location, location, location), timing also applies to how ready your software is for release. 

All jokes and legit jibes aside, I don't blame them for using this opportunity in Joomla history to make people aware of their software house via good branding. I just wish they'd given this software a version number around 0.4 or 0.5 and submerged their product more fully in the older-school culture of open source release patterns. There's absolutely nothing wrong with this extension, except for the version number being post-1.0.

Next in the series, wherein I work to make my own choice for an Xmap replacement, I'll jump to the likely end of the search. There may be further articles in the series after the next one, but I believe by now, we can declare a winner and runner up. Somebody peek the result of that stack register, because I f___ing called it.

Update N: It should also be mentioned that, with this extension, sitemap crawling and writing are manual tasks which must be repeated by the admin, anytime the sitemap needs updating. This XML file is, of course, considered by many users to only exist for the purposes of notifying the search engines of a site's newest content. Version number!

Concluding the series for now: Xmap is Dead, Meet Its Successors

© 2018 Nathan Hawks

Friends are just enemies who've decided to kill you with kindness.
A lover is someone who actually gives a fuck.