Upgrade Your Drupal Skills

We trained 1,000+ Drupal Developers over the last decade.

See Advanced Courses NAH, I know Enough
Jan 26 2021
Jan 26

What’s common between Universities and Drupal? Both are powered by communities and both fuel community-based initiatives. In this article, we will look at some amazing educational websites built on Drupal and why they choose Drupal as their CMS.

Did you know every Ivy league school website is built on Drupal while 71% of the top 100 Universities around the world use Drupal? Numbers speak volumes about a good CMS, but we have many more reasons to prove that Drupal is the best CMS for educational websites. Read on to find out.

This list has been curated with information obtained from https://www.drupal.org/case-studies

Top 7 Remarkable Education Websites Built on Drupal

Why do top universities rely on Drupal

Top universities like Stanford, MIT, Oxford, and others alike, choose Drupal as their Content Management System. Universities are built on large communities – there’s the student community, the teaching staff community, the community of departments, the management, and other working staff. Being a community-driven CMS, Drupal helps knitting all these communities together. Drupal addresses issues in a way that streamlines information between each of its communities. 

  • Drupal allows for scalability to accommodate the ever-growing communities and varied web projects associated with them. The CMS is also well-known for dealing with a large user-base and high-traffic websites which is great for universities with a growing student base.
  • Drupal empowers educational institutes to build varied flexible solutions – from intranets to complex web applications to simple static web portals.
  • Drupal’s multi-site approach lets universities easily manage and create independent websites from a single codebase.
  • Features like multilingual, mobile-responsiveness, effective workflow management, access control, and others are now out-of-the-box with Drupal 8, thus making it an ideal choice for educational institutions.

Some Remarkable Education Institute Websites built on Drupal

1. George Washington University

Known best for producing some great leaders in every domain, George Washington University (GWU) relies on Drupal to create an engaging web presence for them. 

Why Drupal was chosen:

  • Drupal’s multisite feature now allows them to spin up new sites faster than ever before. 
  • Accessibility – GWU is committed to web accessibility and so is Drupal.
  • Responsive Web Design – The GWU website is completely responsive on all devices.
  • Ability to build scalable features and functionalities with customizable layouts.
  • GWU expected a reliable digital experience platform. And Drupal delivered.
George Washington University

 

2. University of Oxford

The prestigious University of Oxford has been at the top of the world university rankings for five years in a row. They offer over 250 different programs with a student population of over 24,000.

Why Drupal was chosen:

  • The open-source nature of Drupal worked out well for them financially and also meant that they will not have to depend on one company for all their development needs.
  • A global community of driven developers working towards making Drupal better every day.
  • To collaborate and work better with other units of the university who were already using Drupal.
  • Drupal’s list of quality case studies, including the White House, turned out impressive enough to make the final call.
University of Oxford

 

3. Rutgers University

Rutgers is New Jersey’s state university and is one of the highest-ranked public universities in America with over 71,000 undergrad and grad students. They moved their website to Drupal more than 10 years ago.

Why Drupal was chosen:

  • They wanted a design that looked great on all devices.
  • To deliver a consistent user experience among their various school locations.
  • Distinguish between their different schools yet provide a unified experience.
  • Allowed for fast and easy admission application at different university locations.
Rutgers University

 

4. Bookshare

Although not a university, we had to mention the Bookshare website because it does a fantastic job at imparting knowledge to the visually challenged and people with learning difficulties. There are different formats of accessing the books – audio, large-sized printed, or braille.

Why Drupal was chosen:

  • Web accessibility – They needed to have the highest level of compliance (AAA) to ensure accessibility by the visually impaired.
  • Multilingual capabilities – Bookshare is made available to people across the world and is currently available in 7 different languages (and counting), thanks to Drupal’s multilingual feature and translation modules.
  • To support deep integration with their existing APIs.
Bookshare Website

 

5. Georgia Tech Professional Education

Georgia Tech Professional Education is one of the many academic units of Georgia Tech, serving more than 36,000 learners globally. Georgia Tech is one of the top 10 universities in the US.

Why Drupal was chosen:

  • Its ability to integrate with various third-party marketing and communication tools.
  • Data security to protect student information.
  • Improved performance with smart caching.
  • To provide a user-friendly, easy to navigate and access website.
Georgia Tech Professional Education

 

6. UChicago News

The University of Chicago News office focuses on publishing new content ranging from student academic information to current affairs. They publish over 1000 stories every year that are later picked up and published by other media and publishing firms.

Why Drupal was chosen:

  • To improve website performance and speed during peak traffic events.
  • Powerful and smooth migration of their heavy websites with over 20,000 content nodes and over 10,000 taxonomy terms.
  • To be able to accommodate their growing number of pages, content types, and access control levels.
  • Easy creation and management of content with an effective workflow system in place.
University of Chicago News

 

7. University of Minnesota

Founded in 1851, this top university has more than 50,000 students enrolled in its programs. University of Minnesota is one of the very few universities that can boast about having a medical school, an engineering school, a law school, an agricultural school, and a veterinary school – all in one campus! They had 600 sites that needed to be migrated to Drupal, each of them heavy in terms of storage size with millions of monthly visitors.

Why Drupal was chosen:

  • They needed a flexible CMS that could handle their humungous number of visitors and content with ease.
  • To be able to quickly create new sites from standard design and features – using Drupal install profiles.
  • To build a centrally maintained, yet independently distributed platform that can be used across departments, satellite campuses, organizations, staff, etc.
  • To offer a secure platform with an extremely low tolerance for failure.
University of Minnesota
Jan 19 2021
Jan 19

“Update before you get outdated”. 

PHP 8 is here and is now supported in Drupal 9.1 and its dependencies! November 2020 saw the big release of PHP 8. We call it a big release because of the exciting new features and optimizations it comes loaded with (which we will be talking about shortly). 

Drupal 8.9 and 9.0 are however marked incompatible with PHP 8. They are still compatible with PHP 7.3 and PHP 7.4 – which happens to be the last major PHP update. PHP 7.4 will stop receiving active support from the community from November 2021. And thus, updating your website to Drupal 9.1 will be a good idea now.

Drupal 10, which is scheduled to release in June 2022, will mandate compatibility with PHP 8. Read on to find out about the amazing features PHP 8 has to offer and how you can check if your Drupal version is compatible with PHP 8.

Drupal 9.1 Compatibility with PHP 8

 

What’s new with PHP 8 (Notable Changes)

    1. JIT Compiler

JIT stands for just-in-time compilation. Starting from PHP 5.5, Zend VM became part of PHP. But 8.0 introduced JIT to address some long struggling PHP performance issues. For better performance PHP was based on OPCache using OPCode. This is precompiled code given to the processor as commands. However, it is not very native to the machine language. On the other hand, JIT provides actual machine code with a mechanism to work together with OPCache. JIT does not work automatically. We need to configure this in the php.ini file.

    2. The null safe operator

You must be familiar with the null coalescing operator (??) which worked as:

  
$value = $var1 ?? $var2

It checks for the null value of $var1 and returns it. If it is not null, it returns $var2. But it does not work with method calls. Here, the null safe operator comes into the picture.

  
$value = $obj->getData()?->getValue();

Here you can call the getValue() method; even if no method $obj->getData() returns null, the code will not crash. It will return null. On the other hand, using the null coalescing operator:

  
$value = $obj->getData()->getValue() ?? null; 

..will throw an error.

    3. Named argument

PHP 8 allows you to now pass named arguments to functions. It does not depend upon the argument order. Instead, you can pass the argument name.

  
function named_arg_example(String $arg1, $string $arg2, $string $arg3) {}

named_arg_example(
      arg1: ‘arg1 value’,
arg3: ‘arg3 value’,
arg2: ‘arg2 value’,
);

    4. Match expression

Match expression is like the switch statement, except that it does not require a break statement.

  
$value = match($check) {
0 => ‘Value is zero’,
  1, 2, 3 => ‘Value is non zero and less than 4’’
}

There are many other great new features added to PHP 8 like the constructor property promotion, Attributes, Constant type errors for internal functions, Saner string to number comparison, etc. More details can be found here.

How to perform a Compatibility Check with PHP 8 on Drupal

You can use this method to check if your version of Drupal is compatible with PHP 8 or not. For that, you will need to first make sure you have the required package – phpcompatibility. For more information on this, visit here.

Next, you should already be having Drupal installed. If not, you will need to install Drupal 9 in your system. Using composer to install Drupal is the recommended way. For information about composer installation please refer this document

STEP 1: Drupal Installation

Use this Composer command to install recommended version of Drupal

  
composer create-project drupal/recommended-project [my_site_name_dir]

You will need to change [my_site_name_dir] with the folder name you want to install Drupal into.

STEP 2: Installing the required Package

After installing Drupal, you will have composer.json in your Drupal root directory. Open it in text editor and add the following code:

  
"require-dev": {
    "phpcompatibility/php-compatibility": "*"
},

If you already have require-dev section in your composer.json file, just add

"phpcompatibility/php-compatibility": "*"  to the list.

Next, you need to provide location info to the PHP code sniffer by adding the following lines to composer.json

  
 "scripts": {
    "post-install-cmd": "\"vendor/bin/phpcs\" --config-set 
installed_paths vendor/phpcompatibility/php-compatibility",
    "post-update-cmd" : "\"vendor/bin/phpcs\" --config-set 
installed_paths vendor/phpcompatibility/php-compatibility"
}

And then run:

  
 composer update --lock

It will install phpcompatibility and other required packages.

STEP 3: Compatibility Check

Now, use this command to check PHP compatibility for the project 

  
vendor/bin/phpcs -p [directorypath] --standard=PHPCompatibility 
--runtime-set testVersion [php version] --extensions=[file extensions] 
--report-full==[path/to/report-file]

You need to replace the directory path with the directory path that the test will run on. In our case it is ‘.’ because we want to run the test in current directory (All Drupal files and folder). You should also replace the [php version] with the version you want to check compatibility with - which in this case will be 8.0. Replace the [file extensions] with file extensions like php, module, inc, install, etc. The report-full gives you the flexibility to store the report log in a file. So you will need to provide the path for the log file.

So, for our case, the command will be: 

  
vendor/bin/phpcs -p . --standard=PHPCompatibility --runtime-set 
testVersion 8.0 --extensions=php,module,install,inc 
--report-full==./drupal9-php8-compatibility.txt

It will take a few minutes and you will get a drupal9-php8-compatibility.txt file, where you can check the reported log.

Jan 12 2021
Jan 12

The term Drupal invokes different feelings among different people, based on their professional background or on what they have heard or learned about the CMS. Over the years, Drupal CMS has evolved from a simple tool for hobbyists to a powerful digital experience platform for global enterprises. While Dries describes Drupal as a platform for "ambitious digital experiences", it is commonly referred to as a content management framework that allows for extensibility & scalability through the addition of various user-created modules that build upon its core framework.

Since Drupal 8 and its adoption of continuous innovation, new features and modern libraries are being added with every bi-yearly release. Drupal 9 is out already with its first feature (minor) release of Drupal 9.1.0 last month and we are already seeing the fulfillment of some of Drupal 9's strategic initiatives. With Drupal, promises are always delivered. And this is something every organization, big or small, looks for in a CMS. 

Still confused about moving to Drupal 8 now or Drupal 9 later
 

Drupal for everyone - ease of use

Popularity

Drupal is one of the most popular CMSes currently available & is the preferred choice for government agencies, large associations, non-profits & numerous Fortune 500 companies. Currently, over 1,738,777 websites around the world are built on Drupal. 

This graph compares the trend for the term "Drupal" with another popular CMS "Joomla" over a period of 3 years & it clearly depicts the growth of popularity of Drupal.

image

But why do large enterprises prefer Drupal? Is it as "easy to use " as they say? Let us find out.

Features for Everyone

One of the toughest challenges that Drupal adopters face, whether they are new site owners or novice developers, is trying to figure out what is difficult & what is easy with Drupal. Most of their questions revolve around the ease of use that Drupal as a platform brings to the table. Let us look at some of the basic (yet important) features that Drupal CMS provides to website owners.

Installation

For Drupal installation, more than the “technical knowledge”, you will rather than just need to know how to connect through FTP and install databases. Once you are ready with your prerequisites for the Drupal 8 installation, it will hardly take you minutes to complete the entire set up. The installer performance has been improved by 20% in Drupal 9.1.0 which makes installation faster and easier. Would you believe me if I say that the installation time of Drupal CMS for a new user with knowledge of general installation of other systems might be less than “One & half minute??”

image

Maintenance and Upgrades

One of the main focus areas for Drupal 9.0.0 was to improve its upgrade experience. And so it has. Upgrading to a major version is also as easy as upgrading to a minor version. This has been clearly witnessed on the Drupal 8.9 to Drupal 9 upgrade. 

Drupal CMS ensures that the maintenance and upgrades are easy to handle by the site administrators. The procedures for updating your website include backing up the website and then replacing the files using a web update interface.

Backing up the website takes minimal effort as the site administrator can back up the whole website by downloading only one file which contains the assets of the website.

Drupal also notifies the site admin every time an upgrade is required, thus ensuring that the website never misses an opportunity to stay up-to-date. However, if the administrator does not wish to change the version, Drupal CMS also provides security updates for the previous versions. For example, even though Drupal 9 has released June 2020, Drupal 7 still continues to receive support from the community.

Community Strength and Contribution

The unofficial tagline of Drupal - “Come for the Software, stay for the Community” speaks volumes about the strength of the community. Functioning well since 2001, the Drupal Community is known for its dedicated bunch of developers and contributors who use, build, teach, document and market the best practices in Drupal. You can find their amazing works on Drupal.org.

Usability

Drupal CMS allows administrators to access any page or a section of the page in visitor mode by clicking on edit. While the core does not include a WYSIWYG editor, you can still get it in the form of a module, replacing all the other editor integration modules. Drupal CMS allows easy editing of pages or sections of a page by creating a simplified experience for the editors and administrators.

Scalability

Drupal CMS is highly scalable with high traffic handling capabilities. Its web pages are cached indefinitely as the default setting configuration, but can also be manually cached for a specific time. Moreover, functionality area blocks can be cached, thus allowing better traffic handling capabilities for your websites.

Whether it is the extreme traffic spikes on certain occasions or the constant web traffic, Drupal handles all of that with utmost ease. Did you know that the digital experience of Australian Open 2019 was powered by Drupal? Like Dries said “When the world is watching an event, there is no room for error!”

Web 2.0 Features

Drupal CMS is an excellent community platform provider and It outperforms all other options in this particular area. The platform allows a website administrator to set permissions for site visitors to comment on any content of website.

Drupal also facilitates administrators to set permissions on who can edit, create or delete various content types. It can be an article, pictures, videos or any other media files, everything managed by the admin.

Security

Security is a major concern for web properties these days and Drupal leaves no stone unturned to ensure that your website is secure from any possible security breach. Security updates are published on drupal.org and the users are provided a notice every time a new update is released. Drupal’s active community is alert and any security loopholes are remedied very quickly. They also provide references to guide the user in making a site more secure. 

When it comes to security, Drupal wins hands down when compared to other opensource CMSes in the market today. Check out these statistics below which compares the number of sites that have been compromised by these popular CMSes in 2016. Drupal accounts only for 2% of the hacked websites according to this research.

Drupal security comparison

User Roles and Workflow

The greatest asset of Drupal CMS is its ability to create any number of user roles and assign different permissions. While Drupal’s core includes two default set of roles, anonymous user and authenticated user, it allows you to create multiple user roles depending upon the content types. Also, granular permissions to each user can be assigned based on content section using the taxonomy function.

image

How Does Drupal Make Things Easy?

  • Advanced Control of URL: Drupal provides a precise control over URL structure of a page. Each content item which is called node in Drupal can be given a custom URL. Also, the path auto module can automate custom URL structure for each content type.
  • Custom Content Types and Views: Using Views and the Content Construction Kit (CCK), Drupal allows you to create new content type without having to write a single line of code! Yes, any number of custom content types can be created and displayed in many different ways without any code! Some examples of content types that you can create are forum posts, tutorials, blog spots, news stories, classified ads, podcasts, videos and more.
  • Themeing and PHP Template: PHP knowledge for themeing? No, not anymore! Themeing in Drupal can be done with absolutely no PHP knowledge. Drupal CMS uses PHP template theme engine by default.
  • Hook System: This system in Drupal enables you to hook in new modules easily. This hook system is invoked when a particular activity is performed in Drupal. This approach allows Drupal core to call at specific places certain functions defined in modules and enhance the functionality of core. They make it possible for a module to define new urls and pages within the site (hook_menu), to add content to pages (hook_block, hook_footer, etc.), to set up custom database tables (hook_schema) and more.

I completely agree with Dries when he said that Boris nailed it!

Drupal sucks less - Dries Buytaertimage

Jan 05 2021
Jan 05

Marketers are constantly on the lookout for ways to boost website engagement and increase interactivity.   Various third-party integrations and tracking tools are tried and tested to see what works best for the business. But over time, keeping a track of all these snippets/tags/integrations that are hardcoded on the website can get tedious and messy. And that’s where Google Tag Manager comes in. In this article, you will learn about how to integrate Google Tag Manager with your Drupal 8 website.

Integrating Google Tag Manager with Drupal 8

What is Google Tag Manager and how can it help?

Google Tag Manager is like a toolkit. It has all the tools you need meticulously organized in one place. Tools like Google Analytics, Adwords, personalization tools, A/B testing tools, Remarketing, Native advertising pixels, and much more. All the integration tags can be stored in Google Tag Manager for better access and management. How can it help, you ask?

  • Marketers find it greatly beneficial as they don’t have to depend on developers to add and modify integration tags on the website. They can easily do it themselves.
  • Better organization of tags can help marketers’ access and manage their integrations easily.
  • Updating tags don’t require you to change them on multiple web-pages. 
  • Test if your tags get triggered on any event/action in the preview mode.
  • You can even check for formatting or security issues before deploying it to live.
  • Provides an extra layer of data security.

Integrating Google Tag Manager in Drupal 8

Drupal 8 integrates seamlessly with Google Tag Manager and installing it is also a breeze. This module is also compatible with Drupal 9! Now that we know how useful Google Tag Manager is, let’s move on to integrating it with your Drupal 8 website.

STEP 1 – Install the module

You can download the Google tag Manager module here.

Or run this command through composer with this command :

       
composer require 'drupal/google_tag:^1.4'

Install the GTM module

STEP 2 – Configure the Module

In the admin toolbar, go to Configuration-> System -> Google Tag Manager

Configure the GTM module


STEP 3 – Open Container Page

Once you click on Google Tag Manager, you will see a container page like this –

Open container page


STEP 4 – Add a Container

Click on the Add container button. This is where you will add the Container ID that you had created previously when you signed up with GTM. If not done already, go here to signup and create a container ID for yourself (shown in the below steps).

Add a container


STEP 5 – Create a Container

Under Account setup, give the Account name and your Country name.

Under Container setup, give the Container name and select the target platform as per your requirements.

Click on the Create button.

Google Tag Manager-Create n account


Step 6 – Get the Container ID

Once done, you will be able to see a popup screen that will display the code snippet that needs to be pasted in the head section. Look out for the Container Id which will look like an alphanumeric word and begins with “GTM”. Here it is “GTM-MXQN9XL”. Copy this code to your clipboard.

Tag Manager Code - get the container ID


Step 7 – Insert the Container ID

Head back to your Drupal setup where you had to add the container ID. Give a name for your container in the Label field and paste the previously copied container ID in the Container ID field. Save the configuration.

Insert container ID


Step 8 – And we’re all set!

To verify if the installation of Google tag manager has been successful in your Drupal site, go to the home page of your website and do an “Inspect Element”. If it has been installed properly, you should be able to see it within the <head> tag.

Check if GTM module is properly installed
Dec 29 2020
Dec 29

As I sit down to write this piece, I can only think of Coco Chanel’s quote, which will give you a gist of this article. “The best things in life are free. The second best things are very, very expensive”. In this article, we are going to compare Drupal - the powerful free and open-source content management framework, with other proprietary CMSs like AEM, Oracle WebCenter, and SiteCore.

The choice between a proprietary CMS and an open-source CMS usually depends on the organization's requirements for features, budget for technology spend, traffic, and support expectations. While there are tons of advantages and disadvantages of each of these CMSs, take a look at the below table for a few of their features.

  Proprietary CMS

  Open-source CMS

Built and maintained by a single company Developed and maintained by a community Source code is private Publicly available source code Acquired by paying a license fee. Pay per
customization and additional users Zero license fee. Pay per resource/agency for customizations. Slower support and new updates  Fast and easy support and frequently updated releases because of the large community. Closed development and lack of clarity on the code Transparency in terms of code quality and bug fixes


If you have been assigned the arduous task of choosing a good CMS that can meet all your business needs, it might be hard to convince into a free, open-source CMS like Drupal. Mid to enterprise-level organizations normally believe that quality comes with a huge price tag. But that is not always true and absolutely invalid with a CMS like Drupal. 

Drupal and other CMS comparison

Ease of use and customization

Choosing a CMS just because it is popular isn’t a great idea. You will need to find a CMS platform that is able to conform to your business model and grow with it. It should be tailored to support the business needs of your organization and also easy to use. One of the most important reasons for going with a CMS is to ensure easy updating of content.

AEM – Is a Web Content Management System that lets you build and manage multiple websites with ease. For content authors and web administrators, it is very helpful as the interface is similar to MS Word. It has some cool drag-and-drop features that make it easy to use even for a non-technical person. The authoring experience is very intuitive and slick. Installation and setup tend to get a bit tedious and finding a developer to help you out with it is comparatively difficult and expensive. AEM is based on Java and hence any customizations will need highly experienced developers.

Oracle WebCenter Sites – Lets you easily create and manage targeted and interactive online experiences while optimizing customer engagement. Content editors have the capabilities of previewing the content without leaving the platform. With very limited drag-and-drop capabilities, the admin user interface does not provide many options for configurations and seems very outdated. Customization possibilities are immense if you have skilled engineers with substantial experience in application server, ADF, and of course Java and the web. Managing the code in the JSP files can seem to get a bit difficult as the tags and scriptlets are blended together.

SiteCore – Is a .NET based Web Content Management System with which you can store, manage, analyze, and update your website content in a single platform. Comes loaded with tons of features for organizations looking for personalization, analytics, A/B testing, marketing webforms and more. It allows multiple content authors to edit and authorize content at the same time. The user interface for content authors and admins is very user-friendly and lets you drag and drop various reusable elements onto a page including JS widgets, images, text, and videos. It is very customizable too which is great for businesses with unique requirements. However, finding a certified Sitecore developer is not an easy task and also very expensive.

Drupal – Drupal is an open-source content management framework that lets you create and manage powerful websites. It has great features to use out-of-the-box itself or can be easily customized with thousands of freely available modules to suit every business requirement. There's tons of room for scaling and customizing a Drupal website. The learning curve is a bit steep and finding Drupal talent was not very easy. However, this has changed since Drupal 8 and its adoption of continuous innovation and modern frameworks like Symfony and object-oriented programming structure. Drupal 8 also provides a very clean and user-friendly content authoring experience with its WYSIWYG and drag-and-drop interfaces. There are a plethora of free themes to choose from that are easily customizable.

Features and Integrations

Your ideal CMS should provide you with everything your business needs out-of-the-box but that’s wishing for a little too much. Look for a CMS that can provide you with maximum features where you don’t need much third party integrations to do your job. Or a CMS that can easily integrate with external modules and integrations needed for your business.

AEM – AEM has some exciting features like a drag-and-drop UI for content authoring, a well arranged visual site-map, layout manager, calendar views for projects and tasks, re-usable content via Experience fragments, Touch UI, template editor, publication management, activity map integration, side-by-side page preview, assets search functionality, exclusive check-in check-out, user-profile integration, online revision clean-up, Mobile content services, etc. For extensive customizations, AEM allows for easy integrations with Adobe Marketing Cloud’s components like Adobe Analytics, Adobe Target (continuous assessment of content to be more relevant for more conversions), Adobe Scene7 (media management, web publishing, and enhanced web experiences made easy), Adobe Dynamic Tag Management (an intuitive tool for marketers), Adobe Search & Promote (to control and optimize search results) and Adobe Campaign (easily manage email delivery content). In addition to this you can also integrate AEM with third-parties like Amazon web services, Salesforce, Silverpop engage, Youtube, Facebook, ExactTarget, etc. However, AEM is not as tightly integrated with other third-party modules as it is with Adobe products.

Oracle WebCenter Sites – With features like Document management (Document preview, version control, image editing, watermarking, video editing, document collaboration, etc.), records management, file sharing, searching abilities (by metadata and keyword), workflow management, create-customize-extract forms, advanced security features (audit trails, role-based access, 259- bit encryptions, etc.) Oracle WebCenter Sites also allows for integrations with Wordpress, Outlook, Sharepoint, MS Office, CRM, ERP, Social media, Calendar Apps, etc. However, integration with other components is not very simple and needs skilled developers for the same.

SiteCore – Some of SiteCore’s features are made for sales and marketing executives, like Advanced editorial experiences, multilingual websites, personalization, AB testing, highly configurable security features, search engine optimization, analytics, print experience manager, web forms for marketers, marketing automation, social media marketing tools, etc. Sitecore’s Connectors ensure that your website integrates with third-party solutions easily and fast. Like SiteCore commerce connect, SalesForce, MS Dynamics 365, MS Dynamics CRM, Adobe In- Design, Google +, Visual Studio, FaceBook, Twitter, Brightcove and many more. All in all, SiteCore is a great tool when businesses need tons of integrations.

Drupal – A powerful set of out-of-the-box features and access to countless freely available add-on modules, makes Drupal the most preferred CMS. It comes with out of-the-box features like intuitive content authoring, rich text editor, easy approval routing process, storage and management of assets, search functionality, granular security features, thousands of templates to choose from, mobile-first approach, search engine optimization functionality, flexible taxonomies, multilingual, user role management, dashboards & reports, API integrations and much more. Some add-on modules that are almost absolutely necessary for most Drupal websites are CTools (set of APIs that assist other modules), Views (organizes Drupal content), Token (creates re-usable patters across your website), PathAuto (helps generate SEO keyword rich URLs), Webform (used for accepting any kind of forms), CKEditor (provides a WYSIWYG editor), etc.

Drupal also seamlessly integrates with almost any third-party solution available like CivicCRM, Salesforce, Marketo, Sharepoint, Alfresco, Magento, Ubercart, Payment gateways, Disqus, Wepay, HER/EMR systems, Google analytics and apps, LDAP, Opigno, Mailchimp, Wordpress, Joomla, Surveymonkey and the list can just go on. Being an open-source content management framework having over a lakh of active contributors, there really isn’t a feature or integration that Drupal does not already have. For extremely unique and specific business functionalities, of course, you can easily hire a Drupal developer.

Pricing and Support

Robert Genn, a renowned Canadian artist once quoted "A high price may be part of the mystique in selling difficult art". You should be able to get true value for the price you pay for a CMS. Being expensive doesn't make it fit for "enterprises".

AEM – According to Gartner Inc., AEM is one of the more expensive CMSs in the market, almost twice the price of its closest competitor. The total implementation cost comes close to $2m including licensing. There is a lack of experts who can implement and support AEM for your website while the Adobe support team pushes you into buying more service contracts or products to be able to help you further.

Oracle WebCenter Sites – The power and flexibility of Oracle WebCenter Sites does not come cheap. According to Oracle, the licensing costs is currently $100,000 per processor. Additionally, the first year of Oracle support is about $20,000. Having an excellent support with experienced staff and 24/7 support is great but covers only the core product. Any customizations or extensions will not be covered by support and you will need to hire not-so-easily-available developers.

SiteCore – SiteCore’s licensing fees starts at $40,000 with $8000 fee for every additional year. Implementing costs starts at $65,000 while support and other fees cost about $10,000 per year. SiteCore users have had issues with technical support for the CMS lately.

Drupal – The best and the most notable feature of Drupal is that it is Free! There are absolutely no setup costs or licensing fees and is free to download and use. Being an open- source content management system, you have full access to documentation and support forums that is provided by a community of volunteers. Most of the contributed modules are free too! Of course there are development costs if you need customizations for your business requirements and hosting charges. Drupal’s network of dedicated and helpful contributors are continuously working on issues and improvements that can help users immensely. Drupal developers are not difficult to find and hire either if you need customized support capabilities

Popularity with customers

Yes, popularity does not always guarantee quality but it is enough proof that there is a heavy demand for the product and it is selling well. The below figures are based on a latest report by BuiltWith as of December 2020.

AEM – AEM has powered over 106,125 websites.

Oracle WebCenter Sites – About 6,111 websites currently use Oracle WebCenter Sites.

SiteCore – 130,079 websites are powered by SiteCore CMS.

Drupal – Drupal hands down wins in the popularity category by powering 1,542,941 websites till date.

Dec 16 2020
Dec 16

We all know Drupal as this robust, flexible, and dependable CMS platform but not many realize its abilities when it comes to SEO. SEO can be one of the most influential factors for the success of an organization or a business. Did you know that 93% of online experiences start with search engines and 51% of all website traffic is attributed to organic searches (source)?! 

When people from around the globe search for your product or services, you want to appear as high as possible on the search engine ranking. Improving your SERP (Search Engine Results Page) ranking is now more important than any other marketing strategy. Ideally, Drupal SEO is about making your website easy for both your visitors and the search engine crawlers to understand. Thus, your SEO strategy begins long before your Drupal website is built. With an effective long-term perspective, its amazing collection of Drupal SEO modules, its flexibility and customization options and not to forget, the loyal community working towards the betterment of the open-source platform, Drupal tops the CMS chart. Drupal 8 (and 9) offers some exemplary modules that can boost your Drupal 8 SEO and SERP ranking.

With our SEO for Drupal guide, you don’t have to go too far in search of Drupal SEO modules, features, and tips to boost your website ranking. 

Lay your Foundation

With Drupal 8, most of the required SEO best practices are already embedded into the core of the platform and with a little knowledge of SEO and some must-have configurations, anybody can possibly boost their website’s SEO to drive more traffic. But before you jump right into the tools and other configurations on Drupal 8, sit back and think about the basics which you need to get right for your website's success.

Things to remember -

  • With your website goals in sight and your visitors' interests in mind, sit down and form a proper pre-SEO strategy, to begin with. 
  • Know your audience before you begin with your Drupal 8 SEO strategy. Once your audience set is established, shooting targeted content will be easier.
  • Pay attention to every detail that goes into your On-page SEO (content, improve keyword ranking), Off-page SEO (backlinks), and Technical SEO (site architecture, UX, clean code). 
  • Website performance and site speed directly contribute to a website’s SEO ranking factor. This is not just true because of Google’s algorithm update for speed but also because a slow loading website hampers user experience.
  • Yes, come 2019 and Google has changed the way SEO used to work previously. The focus is more now on the value you bring to your users – mainly through content. Hence, getting your Content strategy right is very crucial for a good website ranking.
  • Google favors websites that make it easy for users to navigate and access irrespective of the device. With Drupal 8, you can be assured of a responsive website because of its Mobile-first approach. 
  • Remember that SEO works differently for different businesses. There is no one-size-fits-all when it comes to crafting an SEO strategy for your Drupal website.

Top 5 Drupal SEO Modules to Optimize your Website

With Drupal 8 and the continuous innovation approach, it has adopted some of the best-in-class technologies thus making it more future-proof. More importantly, it has made content authoring more powerful and easier at the same time. One of the great things about Drupal 8 is that it is "SEO ready" right out of the box. Drupal 8 has hundreds of Drupal modules to choose from to boost the SEO of your website. Let's make your job easier by laying out some top Drupal SEO modules that help enhance your SEO efforts on your Drupal website.

1. Metatag Module

We all know what a significant role does meta data play in improving the overall SEO of a website. It’s the hidden information that is seen and understood by search engine crawlers that gives them an overview of what your page is all about. The Drupal Metatag module (previously Metatags) lets you create and modify different meta data elements of your website. 

Meta-Module

The Metatag module plays an extremely important role in improving your website’s Drupal SEO ranking. Take a look at this article to set up and install the Drupal Metatag module.

2. Pathauto Module

It is proven now that websites with a more organized, user-friendly and keyword rich URL have a better click-through rate (CTR). And a better CTR means a better SERP ranking. The Drupal Pathauto module lets you easily automatically generate URL or path aliases for different kinds of content.

pathauto-module

         Pathauto Module

You can even create bulk URL aliases automatically when you have tons of content that needs to be converted to user-friendly URLs.

3. Simple XML Sitemap

Sitemaps are essential for any website to let the search engine bots know which of its pages needs to be indexed and on what priority. The Simple XML Sitemap Drupal module allows you to automatically generate XML sitemaps for your Drupal website. The sitemaps generated follow the latest Google standards. 

Simple XML Sitemap

The Simple XML sitemap module also supports multilingual content by creating hreflang sitemaps and image sitemaps.

4. Google Analytics Module

In our recent post on the Google Analytics Module, we discussed how you can add the module to your Drupal website and also create custom reports for better performance of your website. Though the Google Analytics Drupal SEO module does not have any direct effect on your SEO for Drupal or does not improve your search engine ranking, it plays a major role in providing the necessary information that can amplify your Drupal 8 website's SEO success. By tracking your visitors, their behavior and interests within your site, you can change or add new strategies to drive more traffic and increase conversions. You can also use the GA Reports module that can provide you with a graphical representation and details reports about your Drupal website.

drupal google
        Google Analytics Module

5. Redirect Module

Google certainly does not like spammy duplicate content on a web page. Such content can have a negative impact on your SEO efforts and as a result, can harm your rankings on the search engine. On Drupal, while you are happy creating clean URLs with the alias system, you should note that there is a small problem arising. With the creation of new URLs, the default URL still exists and the search engines do not see it as a good sign.

global-redirect.

      Redirect module

The Global redirect module helps in rectifying this problem by verifying the existence of an alias for a URL and letting you manually redirect it to the same. The Redirect module also plays a role in checking the URL implementation and permission or the access required to the nodes and URLs. You can also install the Redirect 404 submodule that will log all the 404 errors and lets users create redirects for those often-requested pages. Another submodule that can be used alongside this module is the Redirect Domain that lets you redirect between different domains.

6. Real-time SEO for Drupal

This is an extremely cool module that lets you edit your SEO elements (meta data) like in real-time! No more worrying about how much description and content is too much or too less. Or wondering what it may look like in the search engines. It is like a What-You-See-Is-What-You-Get editor for SEO. It works in co-ordination with the Metatag module to offer some absolutely stunning features.

real time SEO

7. Drupal SEO Checklist module

If you are a ‘To-do-list’ person who is in love with organizing things, this Drupal SEO module is for you. The Drupal SEO Checklist module is one of most significant Drupal SEO modules and something you absolutely need. This Drupal module does not directly affect your SEO and improve the SERP but will provide critical information on the changes to be made on the site. The Drupal SEO Checklist module checks your entire Drupal website for proper search engine optimization against SEO for Drupal best practices and tells you what to do. It provides a detailed report on what needs to be done to improve the performance of your Drupal website.

seo-checklist
          Drupal SEO Checklist

The SEO checklist module keeps a track of how tasks have been taken care of, what has already been done (with timestamps) and what needs to be attended to. If a task needs you to install a module, it provides with a link to download it as well. This data provides a report that can be used for further monitoring. However, this module is only supported in Drupal 8 (and 7) but not compatible with Drupal 9 yet.


In addition to these Drupal modules, there are many other Drupal SEO modules such as the Page Title module which allows the page title to be set, the Meta tag module which equips you with complete control of meta tags on your Drupal website, and the XML Sitemap module to create a search engine readable, dynamic sitemaps.

Some Additional Tips to Improve your Drupal site's Ranking

Just to let you know, while you were reading this blog:

  • More than a million Google searches were made.
  • Close to 20,000 Facebook posts were posted.
  • More than 1000 blogs were posted on the internet.

The internet is noisier than ever now, and it doesn't seem like it is going to stop anytime soon. SEO at its beginning stages was all about cramming your website with keywords and let the crawlers do their magic. But over time, SEO has blossomed with Google introducing some amazing algorithms and updates to curb the black hat SEO practices.
Right now, for a successful Drupal 8 SEO campaign, you need to study your visitors, their behavior and interests on your website and curate the content accordingly to stay ahead of the curve. You don't want to be in the midst of a content gap which can create problems for your website's conversions. With this study, you have a real opportunity in hand to develop fresh content for your Drupal website and optimize it for the searches on the search engine.
 

Nov 03 2020
Nov 03

As a developer, you will come across several situations when you need to import data from external sources. Sometimes you will need to import data from more than one source into your Drupal 9 website. The Feeds module in Drupal is a simple, no-fuss module that enables even non-technical users to import content from different data sources. What makes it simpler than other Drupal modules like the Migrate module, is that the entire import process is done through Drupal’s UI. It delivers content to you the way you want it as soon as it is available.

Many websites import RSS / XML feeds from third party sites. In this blog, we are going to get a news feed imported through this 3rd party API that provides data in json format with the help of the Feeds module in Drupal 9

drupal-9-feeds-module

Installing the Drupal Feeds Module

The Feeds module for Drupal 9 lets you import data from different formats like CSV, XML, JSON, RSS, etc. into nodes, users, and taxonomy terms via the UI.
 
1.  Install the Drupal Feeds module (Here we will be using composer)

       
composer require 'drupal/feeds:^[email protected]'

2.  Here, we are using JSON feeds for importing data. So, we require a JSON parser which will need us to install one more module which is the Feeds extensible parser. The best way to install this module is by using composer because it downloads all required libraries. (You can also skip the first step if you're downloading using composer as the Drupal feeds module will be a dependency for the feed_ex module).

       
composer require 'drupal/feeds_ex:^[email protected]'

Note: If you're not using composer to install then the libraries required by this module can also be installed with the Ludwig module. Install the Ludwig module and then go to /admin/reports/packages for further instructions.

3.  Enable the feeds and feeds_ex (Feeds Extensible Parsers) module either by using drush or through UI.

Feeds Module

Configuring and Implementing the Feeds Module

Here, we are going to import the data from https://newsapi.org/ website articles (Topics related to “Top headlines from TechCrunch right now”) which is exposed in JSON format shown in the below screenshot. 

To get this news data we need to login to the website and get an API key. Next, select the topics for which you wish to import the data to your website.

feed module configuration

Looking at the API, let's create a content type where our data needs to be imported.

Creating a Content Type 

Here, I have created a new content type called “News”. Choose the field type according to your JSON for which data needs to be migrated. 

content type-feed module

In the above screenshot, we have chosen simple fields for importing the data like Author which is Text(plain) field for the importing data from JSON key author. 

JSON Key Author

As you see in the above screenshot, we have added the Feeds item field of type Feed and chosen the feed type accordingly. We will be learning how to create a Feed type in the next section below.

Creating a Feed Type 

Follow the below steps to create a feed type.

  1. Navigate to Feeds overview page (/admin/structure/feeds). You can see all the Drupal feeds listed on this page.feed type - feed moduleI have already created 2 feeds. Here I am going to be using News feeds. You can create your own feed type by clicking on Add feed type. 
  2.  When editing the feed type or adding a new feed type, we will see the below options.
feed modules
  • The Fetcher settings option shows where you’re importing the content or fetching the content from.
     It provides 3 options to choose from,
  1. Directory :- Import the content from a file or a series of files already on your website.
  2. Download from URL :- Import the content from url (Which we will be choosing in our case).
  3. Upload file :- Import content from a file.

Based on the Fetcher selected, we will have to configure the Fetcher settings. For the secondary option of fetcher settings, we have the below list of settings.

  • Auto-detects feeds
  • Use PubSubHubbub 
  • Always download
  • Request time out

Configure secondary settings accordingly.

Configure - feed modules

•    Parser lets you configure the format of the feed. Here we have many options to choose from like CSV, HTML, OPML, JsonPath (which is our setting), etc. Choose the one from the dropdown menu according to your feed format.
 
Based on the parser selected, we will have to configure the parser settings. In our case, we don’t have any parser settings for parsers of type JsonPath.
 
•    Processor settings show configurations of the type of content the feed will create.

Similarly, we have a secondary settings option for the processor as shown in the image below.

feed modules

Configure your secondary settings according to the requirement.
The below screenshot shows the primary settings of fetcher, parser, and processor.

feed modules


3. Mapping sources to target

The help text says base query to run, which shows the root or base of the data to be targeted for the Drupal feeds import as content. In our example, we have configured it as “$.articles.*” because our data resides inside the article key. Look at this path documentation to configure yours.

  • Field Mappings

Now, we can configure the Feeds module to decide which value pulled in from the JSON should map to which field on the Drupal news content type.
 
These targets are the Drupal data fields and are pulled in based on the processor you select when creating the feed type. You can also configure other settings for the particular mappings of the fields like Language, filter format (applicable for text formatted fields), unique (unique identifier used to track if the content is new or existing one), etc.
 
For example, if we want to import the JSON feed news article content title as Drupal news content title field then the target will be the Drupal Title field and the source will be JSON news article title key as shown in the below screenshot.

JSON Feeds

Here we are using the mapping configuration as shown in the below screenshot.

feed modules

You can also clone the feed type using the Entity clone Drupal module that is also supported in Drupal 9.

Creating a Feed

To create a feed, navigate to content -> Feeds tab -> add feed -> select the feed type

feed modules

I have already created one for News. To create a new feed, click on the + Add feed button and configure the feed as required. For our blog, we have configured as shown in the below screenshot.

feed modules

After the configuration, click on Save and Import. This will import the Drupal feeds as content. When the data is getting imported, you will see the processing status as shown in the below screenshot.

feed modules

Once the JSON data gets migrated to content, we can see the content added to the news content type as shown in the screenshot below.

feed modules

Now, let’s compare the imported content with feeds.

feed modules    Source Content from the techcrunch articlefeed modules      Drupal feeds import - Feeds module

For more detailed information you can refer to this guide.

Additional modules to extend the Feeds module 

•    Feeds Tamper module helps you modify and update the source data before it gets imported to your website.
•    Feeds extensible parsers contains a set of parsers like XPath XML & HTML, JSONPath JSON & JSON lines parser, etc.
•    Feeds Import Preview module lets you see the content in your source before importing it.
•    Commerce Feeds module helps you in importing products to your Drupal Commerce site.

About Drupal Sun

Drupal Sun is an Evolving Web project. It allows you to:

  • Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
  • Facet based on tags, author, or feed
  • Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
  • View the entire article text inline, or in the context of the site where it was created

See the blog post at Evolving Web

Evolving Web