Joomla SEO: advanced extensions and workarounds
SitemapsBefor i go deeper into extensions, i want give some maby obviuos informations about sitemaps:
- a sitemap must be better available with following URL: domain.tld/sitemap.xml. If not, the searchbot could be in trouble getting the sitemap and we must route it to the proper address of our sitemap. The bot routing is best done with inserting of the full path to sitemap.xml into robots.txt.
- It is possible to create more then a single sitemap for a site: to keep things clear, you can create an own sitemap for each content section. Beside of this sitemaps have restriction to 50000 entries.
XML, HTML, Image and News SitemapWe begin SEO for Joomla surely with a right sitemap. And the really right sitemap for Joomla ist since many years and versions XMap. It generates three kinds of sitemaps: general sitemap, image sitemap and news sitemap (for feeding of Google News). XMap has many useful settings: you can prioritize menu point, which are included into the sitemap, the frequency of actalisation of each menu enztry etc. Xmap works through (partly commercial, partly free) plugins with imo all noteworthy third-part Joomla extensions. Surely it gives a possibility to publish a HTML-sitemap as a page, with possibility to CSS it.
Keywords and tags SitemapBeside of the HTML-sitemap is it very useful for SEO purposes to establish a kind of keywords map on the site. Since keywords loose the concrete SEO value, they could be used for better interlinking. To make a clickable sitemap of meta keywords and/or Joomla core tags is Easy keyword sitemap my best known solution.
Search engine friendly and short URLsThe next SEO topic of Joomla are URLs. They must be better SEF. the latest Joomla versions build pretty nice URLs. Who wants more, but doesn't want to handwork, could use sh404 or advancedSEF. For those, who likes to get into things, i could recommend a few extension of my choice:
SEF URLsThe first is Simple Custom Router, which makes you able with help of regular expressions to manipulate the core Joomla's URLs so as you wish. The thing is very mighty, but not for everybody: the using requires the deeply knowledge of RegEx. But if you are a RegEx-geek, then you can make with your URLs everything.
Short URLsThe second extension is a bit simpler, but interesting too and pretty important for SEO, specially for your site architecture. Each self-respecting SEO knows, that it is not recommended to make a site/URL deep structure deeper as 3 levels. So, there could be business cases, where one must / forced to establish the structure with more then 3 level into the deep. What should one do? Just take it easy and use this Direct Alias extension. It makes possible to use in the page URL instead of all parents aliases just only the alias of the given page. Also the URL, looking normally like http://www.site.tld/menu-entry-alias/submenu-entry-alias/your-product-title-alias.html, with using of Direct Alias will look like http://www.site.tld/your-product-title-alias.html. Nice? Exactly:)
Saving linkjuiceAs Joomla SEO we have to care about our site's linkjuice, which would better remain on our site. The free NoExternalLinks from Russia dresses all extern links with rel="nofollow". Another nofollow plugin by mmleoni.net makes the same and beside of adding nofollow it can manage link targets and add or strip these attributes based on CSS classes.
Joomla's semantic SEOSince Google's new approach is called "from strings to things" a SEO task is to make the same on the own site. Making Joomla ready for Semantic Web and, as a result for the including of Joomla sites into new kinds of SERP, like rich snippets, Knowledge Graph, In-Depth articles and One Box is nowadays one of the main tasks of Joomla SEO. I split this challenge into following 5 subtasks:
- establishing of rich-snippets-able breadcrumb and
- rich-snippets-able article voting,
- adding to the site's head Dublin Core and
- Open Graph metadata,
- adding of Schema.org's Microdata to the article's code.
Rich-snippet-able breadcrumbsLet's do: in the JED, official Joomla's extensions repository are some extensions for marking up Joomla's breadcrumbs with Schema.org's Microdata. I list only free of them:
Rich-snippet-able votingArticle voting, marked-up with Schema.org's Microdata increases the CTR of your site on the SERP up to 30%, cause voting results are shown like rich snippets and if below of your site's title are nice stars shown - admit it, it looks pretty good;) Here are these extensions:
Joomla semantic SEOThen let's complete our site's head so, that there are all things defined, which could be used by search engines:
Dublin Core metadataDublin Core is the semantic precessor of microdata, Open Graph and the likes - it lets a webmaster to inform search bots about some base informations about the site, siteowner, site topic, expected audience, site's genre etc. This Joomla plugin by eorisis inserts Dublin Core metadata into your site's head and provides to searchbots all informations you fill in. I used it too, but after some projects this plugin began no longer fit my needs and i began to insert Dublin Core metadata into the head directly. I done it with direct manual template's override and editing or, sometimes i used plugins, which insert metadata into the head, e.g. one by info-graf.fr, which i used myself on several projects successfully, or another one by richeyweb.com, which i although not used myself but fully trust.
Open Graph metadataFor adding Open Graph metadata to a Joomla site there is a real bunch of stuff in the JED. But i name here only one extension which i use on each of my Joomla project since Joomla 2.5 was released and really like for its usability and option opulence. This is ITP Meta by itprism.com: it allows you to add all Open Graph properties to any Joomla page. You can arrange many several sets of metadata and apply them to the homepage and every other menu entry.
Schema.org's microdata for Joomla's core articlesThen i come to the last task: SEO of Joomla content itself. It is enough said without my 5 cent about using of headings, tags etc. I want to attract and accent the attention on making content machine-readable and usable in rich snippets, Knowledge Graph and In-Depth articles. To achive this the content (article) must be semantically marked up so, that search engines realize: so, theis is a (blog) article, it is fresh (publishing date), it is by known author (authorship markup), it is about (about) and so on... I tend to create such markup manually, on template override level, but for those who isn't a code junky, i recommend some extensions, which help you to bring your Joomla content on the top of semantic SEO:
- Almond structered articles for Joomla: free version would be fully enough for marking up of Joomla articles. Who wants a bit more - a Pro version provides mark-up for rating/voting, products and offers.
- J4Schema: it's my darling:) This extension works as a additional button for JCE editor and provides full Schema.org vocabulary. To mark something up you must just higlight a word/sentence with the mouse, click on J4Schema editor button and select desired class or property. Thats all.
Schema.org's microdata for Joomla E-Commerce VirtuemartGerman Professor Martin Hepp established an additional branch of semantic webpage markup specially for E-Commerce sites, called Good Relations. There is a Joomla extension, which marks up Virtuemart products with Good Relations semantic markup. In the meanwhile all Good Relation classes and properties are implemented into the current Schema.org draft.
Schema.org's microdata for Joomla's CCKThere are by now some really mature Content Construction Kits for Joomla. I used on a number of projects only single one: K2. About semantic markup for it i can say just following: although there is a J4Schema Pro, which promises to add Schem.org's microdata to K2 template, but i never used it. What i really got done, is to manually create semantic markup on template override level. And this is pretty easy brings good results: even extra-fields can be marked up one by one. They can even change markup dependently of the outputted value.
Look into this code snippet to check, how works semantic markup of K2 extrafields depending of outputted values:
<?php if(isset($extrafields['44']) === true && empty($extrafields['44']) === false): ?> <li class=""> <span class="catItemExtraFieldsLabel">Autor</span> <span itemprop="creator" class="catItemExtraFieldsValue"> <?php echo $extrafields['44']; ?> <?php if(isset($extrafields['46']) === true && empty($extrafields['46']) === false): ?>, <?php echo $extrafields['46']; ?><?php endif; ?> </span> </li> <?php endif; ?>
That's all from me about SEO tools and workaround for Joomla. Wow, the text become really long, but it's worth it: i got together all advices about extensions for advanced SEO for Joomla. I'm sure, there will be some, who will take my advices.
I plan to write 2 articles yet about Joomla SEO, namely about my experiences with many Joomla script optimizing extensions and about getting high score at YSlow and Google page speed test with special Joomla htaccess hints. Enjoy and stay tuned!
PS: i use this possibility to write some words about my experience with Joomla communities: i got to know english-, german and russian-speaking Joomla communities, they all are imho a bit of weird and have all them own real nasty contra's. English-speaking community hosted at official Joomla.org's forum is although really big, but in all my years there i haven't got an answer on any of my questions. Don't ask me why. I don't know. The german-speaking community is big too, and if i asked real newbe questions, i got answers promptly and from many engaged helpers. But if my questions become more sophisticated, they all stayed unanswered. My experience with russian-speaking Joomla community is exactly inverted: the community is full of really geeks and newbe questions are answered only with RTFM. After i became more skilled, then i got many very qualified discussion partner, which are not lazy, if i asked something just unceremoniously to code what i asked and to provide ready solutions.