Drupal SEO, focusing on site optimization, requires dedicated planning time and a solid drupal development strategy. Whether it be a new site, redesign, or new optimization project, the more time you can spend planning your Drupal site foundation, the less likely you will be to have duplicate content, slow page loads, irrelevant page titles and meta description. In this article, we will discuss the drupal development planning elements needed in order to give your site a chance for Drupal SEO success.
Understand how web pages are created.
To start off, visit your site's hierarchy and understand how each of your pages will be created. Will they be nodes, views pages, or even views pages created from nodes? Consider the following when determining your content types:
- Do you need custom page titles and meta descriptions? Or, could you automate the process by using default variables ([node:title] | [site:name])?
- Could custom open graph tags help you share your message clearer?
- Do you need to use the canonical tag?
Views can get you into trouble.
We love views, the Drupal community does too as its going to be included in the default installation of Drupal 8. Ask yourself if you need to have custom page titles, meta descriptions or open graph tags on view pages. You may not, as these may be category pages that you are not optimizing for. If you do, our views development strategy has been to use a custom recipe/mix of the Meta Tag module, combined with Simple meta for view pages.
Another huge planning feature for views is if structured data should be incorporated, specifically schema.org's microdata vocabulary. Structured data aligns closely with the core principles for using views. An example would be if you planned on having an events or reviews page. You will need to spend extra development time to implement the structured data hooks, which will be well worth it, as it will help the search engines parse your content correctly.
Be particular to which modules you choose. Modules can add excessive database calls and might decrease your overall page speed. Always remember that if every module worked the way that it was supposed to, Drupal would simply be a plug and play solution and anyone could develop sites with Drupal. This is not the case. Drupal is an enterprise level CMS and requires skilled practitioners. Research if you really need the module or if there could be a more efficient solution by writing a custom module. When selecting a module, always read its description and bug reports. There are several modules with known issues that will effect your SEO campaign. Two in particular that we use regularly are Quiktabs and calendar. Both modules can cause duplicate content nightmares; however, they have relatively fast fixes by disallowing those directories to be crawled within the robots.txt file. The beauty of the Drupal community is that there is a huge probability that if you have an issue, someone else has already had the same issue. Take the time to read the documentation before you select your module. Always, always disable modules that you aren't using, such as development-helper modules (like Devel) on production. Our favorite example of this is old Chaos Tools (CTools) AJAX Example. Do a search for "Chaos Tools AJAX Demo" and see how many sites haven't turned off that feature ;)
Embrace Social - its almost 2013
By no means is this breaking news, social signals are factored in the ranking algorithm and should be included in your SEO strategy. Its almost 2013 and you should have seen gains for yourself by now if social is tied to your SEO campaign. Social Sharing at the page level should be included in your Drupal theme. From a site planning standpoint, you need to determine the following during the planning phase:
- Do you want custom open graph tags and control over your social messaging per page level?
- Will you use a social sharing service, such as addthis, or will you use your own mix of modules and create custom recipes? Addthis is awesome, it provides an API that you can tap into for customization. However, it comes at an expense as AddThis slow your pages down at times.
- QA with care. Some platforms, such as LinkedIn, do not clear their sharing cache: https://developer.linkedin.com/thread/3254?page=1.
Plan your CSS Preprocessor
Using a CSS Preprocessor, such as Less or Sass requires you to fully think through your CSS markup process. It will help eliminate redundant selectors and overall code bloat. This will put you on the right thought track towards minimizing calls and keeping your markup lean.
Determine your Cache stack
￼Caching is professional and the icing on the cake for your Drupal site build. The webserver, site visitor and search engine spider will appreciate the time you spent caching as the experience will be better for all three stakeholders. Consider caching stack combinations (drupal core, boost, memcache, etc). If your setup requires multiple servers, ngnix can be a great option. With caching, QA time can be doubled and blocks can be a challenge. ￼
Please plan your launch strategy in the initial planning stage, not right before you are ready to launch the site. If you wait till the end, with the excitement of finally launching the site, is way to easy to over look core tactics that will kill your SEO progress. When planning for the site launch, please make sure you have a launch checklist with the appropriate person assigned to the task. A sample launch checklist for Drupal sites could look like the following:
- Are all of your alias’s complete? This means that url’s should have /node if they are intended for site visitors and indexation. **Sometimes there may be auxiliary nodes which are not supposed to be viewed as separate pages (slideshow elements for example). In this case, there is no reason to set aliases for such nodes. Also /node/ may be disallowed via robots.txt. There are also a couple of other ways to exclude such nodes from indexing and viewing.
- Do you have all of your 301 redirects implemented?
- Review your error logs to see if you created any errors and if they are fixable. A leaky script is your worst nightmare, keep your code clean.
- Have you load tested the site?
- Have you run the site through Screaming Frog SEO Spider or Xenu Link Slueth? This checkmark is under the assumption that you executed the custom meta data asked above ;)
- Have you uploaded your Web Masters tools verification file or validated your account to your Google Analytics account?
- Do you have a sitemap and sitemap.xml?
- Did you turn off non used modules, like development-helper modules?
￼Last - dedicate time.
Realize that Drupal SEO site planning takes time. A wise man in our office always says that the devil is in the details. The more time you can allocate at the beginning of the project, the better off your SEO campaign will be months down the road. No client wants to visit SeoMoz after their new Drupal site has launched and see 40,000+ errors (or even 1 error). The steps that we mentioned above are not quick implementations and do take time to execute. However, it will take a lot less time to implement these items as compared to circling back after the site has launched and fixing the errors. Take advantage of everything within your realm of control; build appropriately, take the time to test, and you will be on your way to Drupal SEO success.