“Teach a man to fish and you feed him”.
In other words: don't expect us to reveal to you, by the end of this post, which is the ultimate winner of this Angular vs React's debate! Which is the right JavaScript technology for your next web project. For we won't!
Instead:
we'll be helping you weight the 2 widely-used JS frameworks' advantages/disadvantages
we'll encourage you to evaluate all their key aspects
… so you should be able to answer THE question yourself: “Should I choose Angular or React for my next web project?”
Angular vs React: Introducing The 2 Competing Technologies
Before you get to run your “magnifying glass” over these two popular JavaScript frameworks' key strong points and drawbacks, while comparing them against your own web project's requirements, allow us to briefly introduce them into the “arena”:
Angular: a full-stack, feature-reach JavaScript MVW framework
… built so that it can provide you (or your team of developers) with all the needed tools out-of-the-box! Where do you add that:
it's search giant Google-supported
tailored to fit large enterprise teams' specific workflows
designed to help you build highly interactive, fast-loading websites and web apps
React: so much more than “just” a JavaScript library for building great interfaces
Otherwise, how could you have even considered comparing it to a full-blown framework like Angular, right?
React is many developers' top choice (and it sure has its own "fan club" within our Toronto web development team here, as well) whenever they're looking for an ideally lightweight, easy to tweak and twist framework for building dynamic, high trafficked (having data that's frequently changing) web apps!
Now that we've introduced the 2 “contestants” competing for the chance to be powering your new web project, let's go on and highlight their pros and cons (tackling multiple key aspects), so you can evaluate them yourself:
Angular Vs React: Comparing 11 of Their Key Features
1. Performance
We need to admit that the 2 JS technologies are comparable from a performance perspective. Yet, we can still outline a few performance-impacting features inclining the balance to one side or another:
Angular:
it supports caching (along with other processes), which means that the server performs at its best
yet, its large size does negatively influence load times on mobile devices
React: constant components re-rendering can lead to performance issues, especially if it's an app handling a heavy load of data that you're planning to build
2. Flexibility
Angular: doesn't allow you too much freedom for customizing your app/website so that it meets your needs in the smallest details
React: highly flexible
3. Development Time
Angular:
your development team will need to invest a significant amount of time in understanding the code (there's a whole lot of unnecessary syntax required), in debugging
it calls for Angular-specific syntax and 3rd party libraries
its layered, hierarchical structure can be quite discouraging for a developer working with Angular for the first time
React:
its Flux architecture is highly convenient and competitive to MVC
is quite easy for developers to understand it
the longer time required to set up a React project might look like a drawback to you, yet once you've built your React-powered app adding on new cool features later on is considerably easier
4. Feature Set
Angular: it does come packed with “out-of-the-box” tooling and built-in best practices
React: although not a full-stack JavaScript framework as Angular, if React will be your final choice you can stay reassured: “when in need”, there's practically a third party library for pretty much everything
5. Scalability
Angular: is built to scale easily, its design, as well as its powerful CLI, being the best proofs
React: designed to be easily tested and, implicitly, scalable
6. Learning Curve
Angular:
be prepared to invest significant time resources in learning this over-sized library
moreover, learning “just” Angular is not merely enough: you'll then need to get yourself familiarized with MVC, with Typescript...
React:
on the bright side: it works with the fewest abstractions
on the... less bright side: you'll still need to take your time to learn all the best practices (and there aren't precisely “a few” only)
7. 3rd Party Library Integration
Angular: when it comes to the 3rd party library compatibility aspect of this Angular vs React “debate”, Angular's not doing so well: Typescript demands type definitions for every single library that you'd want to integrate
React:
it's written on pure JavaScript logic
it integrates perfectly with 3rd party libraries (even with the DOM based ones!)
8. Applicability
Angular: used mostly for building enterprise, traditional form apps
React: it usually powers complex, high-performance sites/mobile or web apps featuring complex user interfaces, with multiple events, multiple inputs (each one “risking” to impact the other's screen)
9. Native Rendering
Angular: comes packed with Ionic 2 and NativeScript
React: it's significantly better “equipped” for native rendering thanks to ReactWindows, Next.js, Alibaba, React Native
10. Size
Angular: it does have a substantial size, which inevitably impacts its performance on mobile
React: smaller sized and, implicitly, conveniently lightweight
11. Optimization Goals
Angular: it's aimed at “boosting” the productivity of development teams working within a company
React: performance, flexibility, and simplicity are this JS technology's main “objectives”
And Last: 9 Key Questions to Ask Yourself Before Making Your Choice
Don't rush in to give your own verdict on this Angular vs React debate. Not just yet.
Not before you've asked yourself these key last questions strategically chosen to “cement” your final decision:
Do you represent a company or are you a Drupal developer working in an enterprise-level team? Then you're definitely better off with Angular! It's designed to boost large teams of developers' productivity and to adapt to big companies' workflows (just let Angular's CLI outline and guide you along the step-by-step path to take for completing your application!).
Are you a start up digital business instead? Then React might just better meet your company's specific needs.
Do you have a “secret” weakness for templates? Then Angular is the JavaScript that you'll feel most comfortable working with on your next web project!
Do you love Typescript? “Angular” is the answer to your own “Angular vs React” dilemma
Do you love “getting your hands dirty” in customization, to be given the chance to tweak your app/website whenever and however you'd like to? React will grant you this freedom!
Is high performance a major issue for you? React!
Is productivity one of your main goals? Higher placed in your hierarchy than... flexibility, let's say? Angular!
Do you have a particular interest in open source web technologies? And does a “guarantor” like giant search engine Google weight a lot in your decision-making process? Then don't “torment” yourself any longer and choose Angular with no hesitation!
Do you fancy building an app with complex, eye-catching interfaces, yet one with a small footprint? Then it writes “React” all over your project!
We strongly hope this little “questionnaire” here, along with our comparison tackling these two JS technologies' major aspects, will help you make up your mind faster. Help you make the right decision for your upcoming web project.
Final note: there's no such thing as “THE” perfect choice for each company, development team, project environment, and use case. Not even a “one size fits all” platform for all of your future web projects. Do keep that in mind!
Adrian Ababei / Sep 14'2017
If the Amazon-Shopify partnership was looking so promising already, things just got better! Better for you, who runs an e-commerce business on this platform! Practically from now on by selling on Amazon via Shopify you'll get a major boost in reach.
With the 7 new product categories (that's right, they did get bumped up from 1 to... 7!) you'll be “drastically” increasing the number of Shopify items that you can sell on Amazon's massive marketplace.
And speaking of these newly added categories:
Health and Household
Beauty and Personal Care
Home and Kitchen
Patio and Garden
Sewing
Arts and Crafts
Sports and Outdoors
Toys and Games
There's more!
The Shopify-Amazon integration expansion comes “packed” with better support for Amazon's Brand Registry, as well! Basically, if you're currently Brand Registered on Amazon, you won't need to leave your Shopify dashboard to list your Brand Registered products. You can create them right there!
Better said: selling on Amazon via Shopify just got a whole lot more convenient and more advantageous for you!
“Specifically, What Do I Gain Out of It?”
“… out of this Shopify and Amazon's strengthened and expanded integration?”
Let us point out, in specific terms, how it benefits you, the store owner using the Shopify platform:
you'll get to list 7 times more products on Amazon right from your Shopify shop
you'll get a significant boost in reach: a new distribution channel, with a loyal and nonetheless massive audience (no less than 300M users only last year)
you will never have to leave your familiar Shopify dashboard for adding your Amazon brand registered products; just create and manage your listings right there, in your store
you'll no longer need to use UPC/EAN codes as an Amazon Brand Registered merchant
you'll create your product listings on Amazon even easier as a brand owner
Selling on Amazon Via Shopify: One Shortcoming and A Few Predictions
For this sales channel does present a shortcoming: for now, only U.S. Shopify store owners get to leverage the newly expanded integration.
Still, (and here we disclose a key prediction), the Shopify team's already put it on the roadmap.
They're currently working on giving merchants selling in other regions, as well, the chance of seamlessy selling on Amazon via Shopify. Of creating and managing Amazon listings, of fulfilling orders, managing inventories and so on without (ever) having to leave Shopify.
A challenging task to carry out, if we consider that Amazon operates with separate, per-regions websites and that the Shopify team will need to work closely with all of those teams!
Moreover, analysts predict that this recently expanded Shopify-Amazon partnership is just one “brick in the wall”, the “wall” being their whole strategy of minimizing friction between storefronts. A strategy that will continuously strengthen these 2 e-commerce giants' influence in the e-commerce platform sector.
This being said, allow us to end our post with the optimistic statement coming from Shopify's Product Support Network : “... we've got a full roadmap for growth opportunities with Amazon! Stay tuned :)”
Adrian Ababei / Sep 11'2017
“Fallen for” Drupal 8 Group Module's principle of using entities and entities relations (as opposed to node “knots”) for handling groups? For the entire concept behind it: sectioning your Drupal site into multiple “micro-sites”, where users having different sets of permissions gain access to certain “micro-sites” only?
A "seductive" entity API-powered idea indeed!
And here you are now: pulling your hair out to find a way to link your user groups with their corresponding content (nodes). To list related group content!
How you do that?
How do you filter content and relate it to the group that it belongs to? Keep reading...
But First: A Few Words About The Drupal 8 Group Module
As you must already know, the Group module was born as a solution to all the limitations that the Organic Groups module, its older “rival”, presented. A major drawback being, for instance, the fact that it provided no API.
No API to rely on for configuring a site's role and permission system and content types across its ecosystem of user groups.
And before we point out its most significant strong points, allow us to list and to briefly detail a few key concepts to fully understand how this module works:
group type: a fieldable entity (common pitfall: do not take user-defined groups for nodes!)
group (user) membership: a “group type” fieldable entity specific to a given group, incorporated through a plugin; in other words: each “Group type” can feature multiple fields that describe their user memberships
the Group Node module: provides “Group type”-specific fieldable entities which describe to what level a group is connected to the nodes of a given content
Now that we've shed some light onto these key notions, let us highlight to you the Drupal 8 Group module's key advantages over Organic Groups:
self-contained admin, great UI: everything you need for configuring your groups' functionalities is right there, in your admin menu, no need to delve into a dozen of pages for adding your groups, your group types etc.; simply look for the Group section (neighboring the “People” one)
improved data model: Group relies on group dedicated entities, opening up a whole new era for handling groups of users, groups of content...
“pluggable” architecture: take the “Group Node Module, for instance, that the Drupal 8 Group module ships with; it enables you to integrate nodes into a given group and to share access to private content among that group's members only
Before We Dig Into It: How Do You Programmatically Add New Content To Your Group?
Put yourself into this Drupal developer's shoes:
“He/she has just created an Article node and now he's facing the challenge of programmatically adding it to a pre-configured group on his website."
How does he solve the “problem”? By using the addContent() method, which leverages the following function added to the Group module: Group::addContent(ContentEntityInterface $entity, $plugin_id, $values = [])
Note:
$plugin_id: it stands for 'group_node:YOUR_NODE_TYPE_HERE'
$values: add them only if you want to fill in the fields on the node-to-group relation entity
Now What If You Need to Bulk Add Content To Your Group?
That's right? What if you had to add multiple nodes to one of the groups on your Drupal site relying exclusively on the Drupal 8 Group module's capabilites?
Basically your key objective then would be adding a group content entity to each node connected to your Group.
Here are the steps to take:
Make certain that you have a GroupType
Check that this GroupType has all the proper plugins enabled (GroupType::installContentPlugin(); read deprecation notice)
Put together a group of said GroupType
Bulk add those nodes using: $group->addContent($node, 'group_node:NODE_TYPE_HERE');
Tip: do rely on the API at hand, GroupInterface::addContent(), for this!
Or, if you prefer a shorter version, one that doesn't “constrain” you to use the API, here's a three-step migration process to get inspired by:
Ensure that a group does exist, first things first
(Bulk) Migrate your nodes
Manually put together your GroupContent entities
And Finally: This Is How You Show Related Group Content
Or, better said “how you create a view for showing that content” using the Drupal 8 Group module.
Before we dig into the step-by-step guide, we'd like to highlight the fact that:
you'll be using “node id” as a contextual filter
the process requires 2 types of Views relationships: Contextual Node > Parent Group and Parent Group > Nodes in group
And here are the promised steps:
Create your content view (it should have at least one block)
Under your View's relationships choose “Content: Parent group” and then click the “Require this relationship box”; you'll now see new relationships listed in the dropdown menu
Next, from the same dropdown menu select the following relationship: "Group: Node entities", then hit the “Require this relationship” box
Then it's time to define your contextual filter: select “Content NID” from the dropdown menu, hit the “Provide default value” box, then pick “Content ID from URL” from the next dropdown unfolding there
Now it's time you defined the “Group Node” relationship (under Format more precisely) for every single rendered entity, content and/or field (according to your own selections)
Navigate to /admin/structure/block and select the region of the page that you want this block to be displayed on
In short: all there's left for you to do now is simply display nodes from the second relationship that you've defined and (if you want to) filter them by creation date, content type, whatever criteria you'd like.
And this is how you do it! How you show related group content using the Drupal 8 Group module's functionalities! Do let us know if you encounter any (other) roadblocks as you're putting this advice into practice!
Adrian Ababei / Sep 08'2017
We think Drupal is the best CMS
Okay, we admit it. We love Drupal and have a bias towards it. We do know other CMS' (content management systems) have their benefits and purposes. But this blog post isn't about them. It's about why Drupal is the best.
Drupal isn’t for everyone. You do need a dev team to support your website to customize Drupal. And to be more specific, you need one that is well-versed in Drupal specific development
Every developer has his or her own personal favorites. After working on Drupal websites for many years, we have grown to love Drupal.
So here is our completely biased opinion on why Drupal is the best.
1. Drupal Is Customizable
Drupal allows for very high levels of customization. With Drupal, if you think it you can build it. The framework of this CMS platform itself never limits you.
With Drupal, it’s easy to customize your site to have app-like features. Websites have become more complex these days with a lot of various functionalities. Working with a flexible system has become important.
2. Some Of The Largest Sites Use It
Drupal is a powerful CMS, open-source, that sites like Al Jazeera and The Economist use.
Drupal is structured like building blocks, which makes it flexible. The modular architecture makes it ideal to handle scale and continuous integration. Developers get more control over the code from the ground up (i.e. you can build anything).
3. Drupal Is Built For Scalability
Drupal’s modular building block system allows for easy scalability. Out of the box, it’s easy to integrate with other applications. This integration is usually needed at an enterprise level.
Another feature that makes it scalable is that you only select the modules you need on a per-page basis. This eliminates a lot of excessive and messy code on pages that don’t need every module.
Drupal offers a series of articles on how Drupal can be configured for optimal performance and scalability.
4. Drupal Offers Enterprise-Level Security
Drupal offers enterprise-level security. High profile organizations like the White House and Nasa use it. The Drupal core code base is very stable and secure.
Drupal has a security team comprised of a global group of web security experts. They take security very seriously. Their job is to analyze and report any security vulnerabilities.
Because most sites that run on this CMS platform need an expert Drupal developer, the Drupal community is efficient at working together. There are over a million experts to review code and functionality. Any potential issue is quickly identified and dealt with before it becomes a threat.
5. Drupal Is Fast
One of the things that differentiate Drupal from other content management systems is that it has built-in caching. In plain English, this allows for content to be delivered quickly.
What Drupal also does is allow you to select modules to run a per-page basis. This eliminates unnecessary code that can slow a page down. Not everything needs to be a part of the site-wide template.
Keep in mind, there are other factors - not Drupal-specific - that can really slow things down. Things like the size of images, number of images on a page, number of requests to the server a page makes, and the number of modules running on a page.
There are helpful (and free) tools out there, like webpagetest.org, that provide lots of tips for helping to speed your Drupal site up.
6. Drupal Is Multilingual
Drupal modules come in 90 different languages. You can display your site in multiple languages and allows users to switch languages easily.
Here is a resource guide for configuring a multilingual site.
7. Drupal Is Good For SEO
If you know anything about search engine optimization, you’ll know that Google is soon-to-be making a big switch to a Mobile-First Index. (It’s a pretty big deal.) Drupal 8 is also supported by a mobile-first philosophy, so it’s ready for the future of SEO. Drupal is very search engine friendly.
Here’s a good explanation of what Mobile-First Indexing means.
Drupal offers excellent plugins for optimizing content. A couple of favorites are the Metatag module and the XML sitemap module.
Drupal provides a limitless platform for you to deliver amazing content. A solid framework – that can functionally do anything - is key to building your presence on search engines.
If you are looking for Drupal Web Developers for your next project, please get in touch. We are always happy to start a conversation.
Adrian Ababei / Sep 08'2017
“Drupal 8 is the most accessible version of Drupal, and brings with it some features not seen in any other Content Management System, open-source or proprietary.“ (Phil Wolstenholme, A new era of accessibility in Drupal 8).
But where do you start enhancing your organization site's accessibility? Your accessibility planning?
For it's true: Drupal 8 does come loaded with some truly “impactful” new features and accessibility improvements that will drastically improve the way visitors with disabilities will interact with your website. And where do you add that they all come out-of-the-box!
Yet: how do you set your priorities? Which accessibility features do you start implementing first and put a particular focus on as you train your editorial staff?
And this is why we, the web development team in Toronto, have come up with THE list (or “selection” if your prefer)! It includes 7 most significant improvements around accessibility in Drupal 8. The ones that you should rush in to make the most of first things first:
1. HTML5 Elements: Add Semantic Meaning Into Your Code
“By default” I should add! Since now Drupal 8 works with HTML5 elements in its templates so that you get to “invest” your code with... meaning!
“Meaning” that screen readers can now interpret, making their navigation on your website a lot smoother. Now your web pages “do” make sense to them!
Here are just a few examples of HTML tags that you can use now for better defining the elements on a given web page on your site: <footer>, <header>, <section>, <figcaption>, <article> etc.
Note: better structuring content on your web pages using these HTML5 elements will support your SEO efforts, too! Since it's not just assistive technologies that can better “decipher” and surf through your web pages, but search engine crawlers, too! How about that for a win-win situation?
2. Introducing “ Tabbing Manager”: A Constrained Tabbing Order
And here's another significant enhancement around accessibility in Drupal 8!
Just try to imagine a scenario where a non-visual user is facing a page overlay. How would he/she know where to tab into and close it?
This is where Drupal'8 new JavaScript feature, “Tabbing Manager”, comes in handy! It practically limits the user's options for tabbing around a web page so that, using his keyboard only, he can gain faster access to the important elements on that page.
Controlled tabbing dashing away confusion! This is how we could define this new feature implemented in Drupal 8 core and impacting your own site's usability!
3. Extensive Support for The WAI-ARIA Markup: Better Accessibility in Drupal 8
Simply complying with the WAI-ARIA standards is not nearly enough. You need to actually make those attributes added to your HTML5 elements understandable to screen readers!
Drupal 8's core maintainers have been well aware of this aspect and have packed it with substantial support for the ARIA markup.
In short: as you'll add the given set of attributes to your code, you'll be ideally structuring your web pages so that assistive technologies can easily navigate through and distinguish their different content sections!
4. Aural Alerts: Visual Updates Made Accessible to Everyone
How could a visually impaired user catch sight of a visual update on the web page that he's on? Of an animation or of an alert box popping up? The screen reader that he relies on can only read one part of a web page at a time...
Introducing “Drupal.announce”, a JavaScript feature which presents screen readers with texts appended to nodes that can be read out loud to the user! So that the visitor should be informed, through a reading user agent, of all the changes/updates happening on various parts of the page (color changes, pop ups, animations)!
5. Alternative Text for Images: Now A Required Field By Default
When you say “better accessibility in Drupal 8”, we should immediately think of all the key features enhancing it which have now become “mandatory” to implement!
Like the ALT text field, a feature allowing visual impaired users to understand an image's meaning with the help of a short descriptive text. Screen readers are enabled to associate the image's meaning with the given text-based content.
Note: simply filling in that field with generic short text isn't enough! You should also make your content writers aware of its significance and, therefore, that it's important to properly describe the image through that short text!
Another note: here we go again, intersecting our efforts to make our websites fully usable for everyone with our SEO efforts! It's not just users depending on assistive technologies for navigating your site that will benefit from this “by default” ALT text feature, but guess who else: search engine crawlers!
6. CSS Display Options: Hidden, Visually Hidden, Invisible...
Here's the scenario that called for the adoption of 4 different CSS display classes in Drupal 8:
“When using “display:none;” in your code you're practically making those specific elements invisible to visual, non-visual and screen readers, too!”
See why such such an improvement in terms of accessibility in Drupal 8 was greatly needed? Its maintainers have implemented accessibility-naming conventions that you get to use for (still) hiding elements on your site from users' sight while keeping them visible for screen readers.
And here are the 4 different CSS classes for hiding/displaying elements on your site:
hidden: hide certain elements both from users and screen readers
visually-hidden: hide elements from users only (keeping them accessible to screen readers)
visually-hidden.focusable:
invisible: hide the element(s) from both users and screen readers, but with no layout impacting the page
7. An “Enable Inline Form Errors” Option for Improved Accessibility in Drupal 8
“This field does not support the use or commas or semi-colons as separator”!
Imagine this error message showing up at the top of a web page as a visually-impaired user is filling in a form on your site. A message that his screen reader informs him of, but which lacks a key detail: which form field?
The user might have already completed several form fields, how would he know which one the error message refers, to?
See? This is where the newly implemented option for enhancing accessibility in Drupal 8 by enabling inline errors within the form itself instead of displaying them on the top of the page, was needed!
Note: do be aware of the fact that it's still a work-in-progress functionality, with a few pending issues left for its maintainers to address!
And speaking of enhancing accessibility and therefore usability when dealing with forms, it's almost needless to add that implementing ARI markup in your forms will help all your visitors:
to interact with all the fields of a given form with great ease
to distinguish whether they've skipped filling in certain fields or checking off certain boxes
Quick Recap
With all its improvements and newly implemented features Drupal 8 offers you an extensive built-in accessibility support! And it makes a great base for you to take advantage of and make the best use of.
How? By training your team in this respect and integrating all the best practices into your organization's specific workflow so that they turn into... routine:
adding properly descriptive ALT texts
using <h1>, <h2> heading tags for creating perfectly structured flows of content etc.
Complying with the accessibility standards, adopting all these best practices and, overall, making the web equally accessible and usable for everyone, will only require an certain investment of time (at the beginning) and... attention! No need for complex technologies or special skills acquiring for you to invest in! Don't you agree?
Adrian Ababei / Sep 07'2017
Making it significantly easier for developers to build Google-driven progressive web apps! And significantly simpler for users to access services through their mobile phones, as well. This is the 2-in-1 prime concept behind Angular 5!
The latest version of Google's mainstream JS framework for building mobile and desktop applications is soon to be released to production. And its beta version's:
bugfixes
performance improvements
new features
... have already “revealed” the Google team's principle of making progressive web apps accessible to everyone. To take out some of all that discouraging, heavy know-how that developers had to get themselves “equipped with” if they decided to take the dynamic AngularJS development's “bull” by the hornes.
And speaking of Angular 5's announced new features and enhancements, let's highlight the truly noteworthy ones, shall we?
New Angular 5 Features to Watch Out For
Here are some of the key features aimed to support the “simpler, faster, smaller” theme of version 5:
forms: add options arg to abstract controls
router: add events tracking activation of individual routes
compiler: add representation of placeholders to xliff & xmb
build optimizer: keeps code to its bare essentials, reducing, therefore, the app's size
integrating Material Design Components and making them compatible with server-side rendering
simplifying the whole progressive web apps' development process: so that the apps can get cached in the browser
Key Performance Improvements
And speaking of enabling the development of progressive web apps (and implicitly of native-like experiences for the users), we can't leave out the notable performance enhancements brought to Angular 5:
abstract class methods & interfaces
the usage of native addEventListener for faster rendering
Google's engineering team's main goal has been to supercharge the fifth version of AngularJS with the needed out-of-the-box enhancements so that developers won't dread using the framework because of all the needed know-how. So that, instead, they should turn it into their first option for building their browser-based apps!
And Then... Get Ready to Welcome Angular 6, Too!
… which will step into the spotlight next year, April 16. So, there's a overcrowded (even “aggressive” we could say) release schedule awaiting the Google team.
Meanwhile, what the team developing Angular 6 can “disclose” is that they'll keep walking on Angular 5's path paved with the “easier, smaller, faster” principles.
And that they'll keep their focus on making developers' “development time” spent building Google-based progressive web apps even more enjoyable: “We’ll continue that theme for version 6, just making [developers’] lives easier, making it possible to deliver apps better for their users” Brad Green, a Google engineering director, said.
In short: progressive web apps will get easier to build, thanks to all the built-in support streamlining development itself and easier (and therefore much more tempting) to use.
So, now that you have your Angular 5 checklist, including all the key features and performance improvements (and you can find the list of bug fixes right here) save the date in your calendar (September 18) and get ready to... stretch test all these improvements and breaking changes!
Adrian Ababei / Sep 05'2017
Diagnosis before treatment, right? Rushing in to optimize your website, to give it a major boost in SERPs, without having first properly determined which are its “sore points” is like... shooting a bow and arrow blindfolded! You need to identify the low quality pages on your site first things first!
Before Google does...
Let's find out precisely which signals determine Google to “label” a site as low or high quality website. Then, let us give you some suggestions on what key metrics to focus on and how to combine them for addressing those “detected” low-quality pages more efficiently.
Features of a “High-Quality Website” in Google's Eyes
What's Google's definition of “quality”? You obviously need to clarify this aspect before you can, yourself, sort the pages on your site into “low quality” and “high quality” pages.
Here are the most relevant “indicators” that make for a “valuable” web page in Google's eyes:
unique content
plenty of other websites/external sources linking to it
high-quality pages (even from your own website) linking to it
uniquely valuable content: reaching for “uniqueness” is no longer enough; aiming for a certain uniqueness providing value to the searchers, that's the latest standard that Google sets these days
content that meets the searchers' needs, that fully answers the question they Google
non-written content is backed by text alternatives (ALT attributes for images, video transcriptions for video content etc.)
“easy-to-digest” content that's nicely structured, which enhances readability and comprehension
correctly spelled content with zero grammar mistakes: unless you want to witness Google removing your featured snippets from the search results
optimal page load time
fully responsive, accessibility-supporting UI and intuitive UX
Hardly Relevant Metrics For Determining a Page's Value
“With so many seemingly actionable metrics at my fingertip, which ones should I be tracking in fact?” you say? Well, not the following ones (taken as “raw data” can be misleading) for a start:
non-contextualized bounce rate: a high bounce rate is not implicitly an “alarming” signal; your content could still be meeting their needs and answering their questions; if it's simple questions that they need to find answers to, once your visitors get them, they''... leave your site!
organic traffic: if visitors keep accessing a certain page on your website, it doesn't automatically mean that its content is “high quality”! They could keep coming in for some totally different reasons, like the long-tail keywords that this page's content is “stuffed” with, for instance
time spent on site: since lengthy visits on your site could also mean that your users are “desperately” looking for the information they need and which is not easily accessible to them; or that they're striving to close the entire “avalanche” of pop-ups that you welcome them with on your website
assisted conversions: even though it doesn't live up to your expectations in terms of conversion rate, it still doesn't mean that this page's content is necessarily low quality; maybe you just need to change its target audience segment for example
Context is everything in these metrics' cases! So, don't take this data for granted when putting together your site optimization strategy. They might just reveal to you only half truths and mislead you to take the wrong actions!
Metrics That DO Help You Identify The Low Quality Pages on Your Site
For (even) more efficiency, put together combos of these metrics here! They are the signals to watch out for when you try to identify the low quality pages on your site:
Engagement metrics:
external and internal
total number of visits
closely analyze your visitors' behavior once they land on your web pages (per visit)
When they leave your currently examined web page, do they leave it for another web page on your site, do they keep browsing through or do they go back to the Google's search results page instead?
That is the question! Answer it and you'll identify the low quality pages on your site!
Off-site performance indicators:
external links
social shares: an “intensively” shared page of your website might not meet your visitors' needs, yet it could still provide high-quality content (since it's “shareable”)
linking root domains
Index-based metrics
type site: http://enteryourdomainhere.com into Google's search box or bar and you'll get the list of all the indexed pages on your website
look for duplicate content: multiple URLs can show up when you type in the URL of your site or the one of a specific page on your website; and that signals a “uniqueness issue” you should handle asap
deep-analyze the pages that rank for their own title
evaluate the click-through rates showing up in Google Search Console
You Can Take It From Here...
Now that you've broken that “aura” of mystery surrounding Google's own tactics for “grading” web pages it's time to... get your hands dirty!
We suggest you to organize your page URLs in some sort of spreadsheet (a basic one would be just fine) and to sort them into three different categories:
the high-quality pages
the pages that require fixing here and there: the ones that need addressing
the “weak links”: meaning the low-quality ones, of course; do make an experiment (so make sure you make copies first and foremost) and see if you can track any notable improvements once you remove this bulk of zero-value pages from your website
How about you? Have you got any other techniques up your sleeve in order to identify the low quality pages on your site before Google does?
Adrian Ababei / Sep 01'2017
To upgrade or to migrate? To keep supercharging your current Drupal 7 site with new cool features or to get it straight to the next league? A so much more than just another Drupal 7 vs Drupal 8 debate: it's a decision impacting your budget and future-proofing (or not) the enhancements that you're about to implement.
In this respect, our web development team in Toronto has done its best to “pile up” the crucial pros and cons for each one of the two paths that you're now challenged to choose from.
Think them through, give honest answers to all the strategically chosen questions included in our little “questionnaire” here and you'll find your (own) way of leveling up your website:
To Upgrade or to Migrate? And a Few Other Key Questions to Ask Yourself
So, here you are: facing the challenge of taking your Drupal 7 website to the next stage of its evolution! But which one is it: the upgrade phase or the migration one?
Now here are some preliminary questions to ask yourself right now. It's the answers to these particular questions that will weigh heavily, later on, on your decision-making process:
1. To what extent will this “maneuver” influence my website's stability, lifetime and level of flexibility?
An extra boost of flexibility, reflected in the “edit content on-the-go” functionality, or the perspective of ongoing support for many years to come will undoubtedly influence your decision!
2. Will my site's code get easier to maintain?
And this is a crucial question to be asking yourself at this phase of the whole decision-making process: how convenient will it be for your Drupal developers to maintain/update your site's code on a long term?
3. How many resources of time do I need to invest?
For time sure is money! How long will it take to implement those new enhancements on your website? Does it involve a lengthy training process for your team, as well?
4. How easy will it be for my administrators to manage content on my website?
A simplified content editing/publishing process is what will guarantee you an independent editorial team. Empower your editors and your site admins and you'll streamline all non-coding processes on your website!
With each question that you'll answer you'll be sketching your company's “specific context”. The one favoring either the upgrade or the migration way for ramping up your Drupal site!
Drupal 7 vs Drupal 8: Key Comparison Notes
Does its “age” automatically give Drupal 7 an advantage over Drupal 8?
No doubt about it! Drupal 7 is now capable to “tempt” you with a heavier load of modules, stable modules and with a longer period of time that the Drupal community has spent constantly improving it.
And yet! Drupal 8, although “younger”, is taking advantage of Drupal 7's weaknesses and shortcomings. Basically, it's equipped with all the functionality that its predecessor lacked.
Speaking of which, here's what Drupal 8 brings new to the table:
top popular modules have been moved to core
an advanced, easy to handle configuration management system
mobile-friendly backend: jump on the “edit content on-the-go” trend
a new era for the “content as a service” movement, thanks to its API approach to content delivery
object-oriented code: by using Symfony and Twig Drupal 8 “surprises” you with a more logically structured code (do take into account, though, that your developers will have to be already familiar with object-oriented coding)
easier-to-edit content: the very essence of content management
one-click code deployment: deploy your code faster and (therefore) as frequently as you have to
pre-built multilingual support: you no longer need to leverage a whole “fleet” of modules for supercharging your website with multilingual capabilities
ramped up performance and scalability: 2 enhancements you just can't underestimate especially if it's a large-scale, content-packed website that you own (one carrying a heavy ecosystem of third-party technologies “pomping” data into it)
easier third-party integration
Your Final Decision Depends Greatly On...
the number of custom-built elements on your current Drupal site: the more of them, the more complex (lengthy and pricey) moving it over to Drupal 8 will get
the goals that you're aiming to achieve via your new enhancements: is it just a new basic feature (just a few hours' work) that you're planning to add or a major enhancement, which would justify the migration process?
the “weight” of your Drupal 7 site's load of data: and its complexity, as well
whether you have a standalone website or a multi-site: needless to add that you should have all your sites (if it's a “cluster” of sites that you own) running on the same version of Drupal
your company's resources of time and money: an upgrade of your current Drupal 7 website won't, indeed, impact your budget to the same extent as a migration process would
Upgrade Your Current Drupal 7 Site If...
it's mostly custom-built: it features custom modules, custom-made workflows which would take longer to recreate and to adjust to Drupal 8's particularities
you need to have your new enhancement(s) up and running on your website in no time
it's basic features only that you're planning to upgrade it with
you're constrained by a tight budget: a factor which will weigh heavily in the Drupal 7 vs Drupal 8 balance
Make the Leap to Drupal 8 If...
the specific workflow on your website depends greatly on a streamlined content editing process
you need to make code deployments on a regular basis
it's complex enhancements that you want to implement
your current Drupal 7 website is a low-complexity one
the overall success of your upgrade strategy depends on high levels of performance and scalability
you value the ongoing support which, well, the Drupal 7's support team will stop offering you at some point
So: Drupal 7 vs Drupal 8? Will you stick to the former or level up to the later? Which direction do our “questionnaire's” results point you in?
Adrian Ababei / Aug 30'2017
A web life without plugins, without extensions for web designers and developers or add-ons! Still: as competitive and as demanding as the present one! Just try and picture yourself as a web designer in this given web environment!
Would you manage to stay relevant? With no design toolkit to boost your productivity, to lighten your work and to turn repetitive and otherwise time-consuming tasks into a matter of just a few simple clicks?
We didn't think so either! Luckily, in today's web life (imagination test over now!) you're definitely not short on choice when it comes to life-saving extensions that you get to drastically speed up your workflow with.
And since no designer worth his/her salt would ever stop adding new and new useful extensions to his/her toolbox, here are our 7 recommendations for you:
1. Spectrum
How could you even dare hoping to provide the best user experience on the websites that you're designing without embedding accessibility into your efforts?
Well, Spectrum is your “ally extension” in all your accessibility implementing and constantly improving endeavours! Basically what it does is enabling you to visualize your work-in-progress exactly as a visually impaired visitor would!
It'll point out to you low contrast problems and issues of badly chosen colors (from the standpoint of those users with color vision deficiency). Once the issues highlighted, you can go ahead and... handle them!
2. CheckMyLinks
Now speaking of creating an optimal user experience: broken links will easily “sabotage” all your efforts in this respect!
And opting for a ridiculously time-consuming method of closely examining your entire website, link by link, is no option in modern web.
CheckMylinks is! This extension will do all the “dirty work” for you: it will crawl into your website and run an in-depth check-up on your entire “infrastructure” of links.
Once you have the “link diagnosis” delivered to you, applying the right “treatment” will be less time and energy-consuming, wouldn't you agree?
3. Eye Dropper, One of The Life-Saving Extensions for Web Designers
How many times haven't you experience a “love at first sight” for certain... colors found on other websites? How could you turn such a “got to have it” color into an accurate source of inspiration? You take either the long or the short path:
you take a print screen, enter your screenshot into the photo editor of your choice and, using your eyedropper tool you engage in a looong, irksome (and nonetheless frustrating) color-identification “marathon”
you install this Chrome extension, give that “irresistible” color a click right there, on the website, and, as if by magic, you'll discover precisely what color it is
Accuracy, time-efficiency and, of course, productivity-boosting! With Eye Dropper you'll kill not 2, but 3 birds with one stone/click!
4. Window Resizer
Compare these 2 possible scenarios here where you need to check how that website that you're currently working on would look like on various devices, having multiple screen resolutions:
you literally put together a “pile” of mobile devices having some of the most common screen sizes and... test your Drupal site on each and every one of them
you install Window Resizer and carry out an UI testing process right in your browser's window, which will adjust, automatically, to all the given screen sizes; this way you'll get to see how your site is going to look on all of those screen resolutions
Now could you deny that Window Resizer could easily get included in the exclusive group of “can't live without" extensions for web designers”?
5. MultiClipboard
Here's one extension that will streamline your code copying-and-pasting workflows! And make you ten times more efficient, needless to add!
Practically the MultiClipboard plugin does precisely what it promises: it allows you to simultaneously “joggle” with multiple clipboards! It makes it easier for you to copy and grab code from one place and store it in a different Notepad file.
Since it keeps track of your recently copied texts, you get to retrieve them and paste them back to their original files!
6. WhatFont
What font is that? The one that instantly caught your eye on that website you were surfing on and that you still (secretly) fancy about?
How can you tell for sure? You harness the WhatFont's power, that's how!
Once enabled, you only need to hover on that text written in the attention-grabbing web font and voila: you'll identify this particular font in a... click!
Mission accomplished! Now you get to replicate it in that design that you're currently focusing on!
Easy peasy! And where do you add that it can also identify the services generating the web fonts and that its supports Google Font API and Typekit, too!
In other words: when in doubt, sift through the bunch of useful extensions for web designers available out there and find the answer to pretty much all your “web design questions”.
7. AutoSave
Put your valuable work under a heavy shield: this Notepad plugin will “watch your back” by automatically saving your work every few seconds.
So you can focus exclusively on crafting amazing designs instead of focusing on... clicking “Save” over and over again lest you should lose crucial coding.
And our list of 7 extensions for web designers that will speed up your workflow and make you X times for productive ends here! We're curious now: which are your own top favorite ones? Is/are any of them listed here?
Adrian Ababei / Aug 29'2017