Evolving Web: Hands-On With Drupal 10: Discover the Best Modules Through Project Browser

Image removed.

Drupal is famed for its flexibility and scalability. Any user can extend their website with an impressive array of contributed modules (nearly 50,000 at the time of writing!) thanks to Drupal’s modular structure and its thriving community of contributors.

But there’s a flip side to this abundance: selecting the right module can be a daunting task. It hasn’t helped that, until now, searching the full repository meant grappling with a long list of inconsistent descriptions on drupal.org. It’s a time-consuming process that intimidates new users and frustrates the seasoned ones (yes, even us!). And while search engines and recommendations helped, they often failed to give enough exposure to the newer and more niche modules. 

The opportunity was clear: users needed a fast, painless way to pick from the vast ‘candy store’ of contributed modules. 

We’re excited to say that the solution has finally arrived! Drupal users, meet Project Browser.

Project Browser: Your One-Stop Shop for Drupal Modules

Project Browser is a simple but powerful tool that will let you easily search, filter, review, and download the best modules for your needs. It’s currently in Beta, but the module is under active development and compatible with Drupal 10

Project Browser promises to be an essential add-on for site builders, web managers, developers, and anyone else who wants to leverage the full potential of Drupal.

Below, we explore the features and benefits of Project Browser that we’re most excited about.

Search Modules Without Leaving Your Site

With Project Browser, you can search the entire repository of contributed modules directly from your Drupal admin dashboard. Once you’ve installed it, simply go to the Browse tab that’ll appear on the Extend page. 

Project Browser is connected with the Drupal.org API using a decoupled approach to ensure content is updated in real time. 

Image removed.

Project Browser streamlines the process of selecting and downloading modules. Credit: Drupal.

Compare Modules at a Glance

Project Browser has a clean, user-friendly design that makes it easy to compare modules side by side. It displays your search results as tiles and lets you view them in list or grid mode. The tiles also feature category tags and a security policy icon. 

Image removed.

The modern, intuitive design makes it easier to review and compare a selection of modules. Credit: Drupal.

Only See Modules for Your Version of Drupal

The search results you see in Project Browser are automatically filtered by the version of Drupal you’re on. That way, you won’t waste any time reviewing modules that aren’t compatible with your website. 

Use Filters to Find the Perfect Fit

Project Browser applies default filters to ensure you only see maintained projects that are covered by a security policy – although you can remove these filters if you want. You can also filter by a wide range of categories such as accessibility, e-commerce, events, and location to name a few.

Image removed.

Narrow down your search results by applying filters. Credit: Drupal.

See Projects by Popularity

By default, Project Browser sorts your search results by active installs. This means you’ll see the more popular modules first, helping you find high-quality solutions faster. 

Get Clear Steps for Installation

Once you’ve found a suitable module, you can hit ‘View Commands’ to get instructions commands to download it via Composer and install it with Drush. 

Image removed.

Project Browser simplifies the installation process. Credit: Drupal.

Expect Even Easier Installs in the Future

Users will soon be able to download modules automatically with Composer running behind the scenes. An experimental version of Project Browser has been set up to develop this functionality. You’ll be able to hit “Download and Enable” on your selected module and let Project Browser do the rest.

Want to Master the Fundamentals of Drupal?

Join our upcoming Drupal for Content Editors training session. Our expert instructors provide hands-on exercises, live demos, and actionable advice to help you excel in your role. You’ll come away from this session with a solid understanding of how to implement a strong content strategy and use Drupal’s content publishing system effectively.

//--> //-->

+ more awesome articles by Evolving Web

ComputerMinds.co.uk: Drupal 10 upgrade: File to media

Image removed.

We're continuing our series on upgrading this very website to Drupal 10...but our first proper bit of work to upgrade this site is essentially nothing to do with Drupal 10!

We built this site in the early days of Drupal 8 and Drupal core didn't really handle 'media' any differently to Drupal 7, but we wanted to try out some new modules that included having a library and drag&drop upload. However, these modules are an additional thing that we need to upgrade and have been pain in that sometimes the buttons don't appear, or they're buggy in other ways. Anyway we're going to replace our previous way of doing media handling, with the way that Drupal 8.5 introduced: the media module. To be perfectly honest we could (and maybe should) have done this piece or work a long time ago, but we simply never got around to it. Anyway, here's an idea of what we had before:

On lots of our entity bundles, we had file and image fields, these were named something like field_background_image for example. This would hold the image that was eventually styled into the title header banner at the top of the page. We wanted a nicer experience for uploading and selecting files to use than the core offering at the time. 

We had settled on using the File Entity Browser module which brings with it a lot of dependencies, but then does give a relatively nice experience that looks a bit like this:

Image removed.Our File entity browser based upload widget

You get a drag & drop upload, and you get to pick files from a grid of files if that's what you want.

This is all well and good, but Drupal core basically does all this now, via the media module, so how do we get to this:

Image removed.The Drupal core media upload widget

To get there, we're going to have to:

  • Enable the core media and media library modules
  • Set up our media types that we want to use
  • Create duplicates of our current file/image fields, but as media fields
  • Switch our templating/PHP code over to use the new media fields
  • Write some kind of data migration to create new media entities for existing files and update the content to reference the new media entities
  • Delete the old fields.

I appreciate that there are modules out there that can help with some of this, but none of them seemed to work quite right for me when I'd tried in the past, and they seemed to get hung up on things like deduplication of files, which I wasn't particularly bothered by.

Setting up core media

This is, by far, the easiest bit: I enable the media module, and then grab the media related config from the core demo umami profile, since that has and image and document media entity all set up and ready to use. I grabbed the following config files:

  • media.type.image.yml
  • media.type.document.yml
  • field.storage.media.field_media_image.yml
  • field.storage.media.field_media_document.yml
  • field.field.media.image.field_media_image.yml
  • field.field.media.document.field_media_document.yml
  • core.entity_form_display.media.image.default.yml
  • core.entity_form_display.media.document.default.yml

And import them into this site, just as a super quick way to get going with a simple set of config that would enable core media handling.

Duplicating fields

Now for the tedious part: duplicating all those lovely file/image fields with media field equivalents. To get a nice list of the entity bundles that needed this work doing, I went to uninstall the File entity browser module, and Drupal gives me a nice list of the config that would need to be updated. This is essentially a list of bundles where we'd set up our file upload widget that I needed to swap out.

So, I go one by one looking at each bundle, and where there was a field named like: field_background_image for example, I'll create a new entity reference field called: field_background_media and set it to reference media entities. Then I set it to use the media widget, and matched its position and settings on the entity form and entity display modes. I did do this manually, but I imagine this would be fairly simple to automate, but I only had a handful of fields, and I went slowly and carefully with the next bit anyway, making sure to test each of my new fields.

In our theme layer, we do a decent amount with some of the files referenced by these fields, for example the background images for the page headers, get processed by some custom code that generates some specific inline CSS. So I searched the codebase for usages of these field names, and switch them over to the new fields. Being careful that now there was an extra level of entity in the structure of the data, since before I'd have had:

Host entity -> image field -> File entity -> Actual URL to image

But now the new fields will have:

Host entity -> media field -> media entity -> image field -> File entity -> Actual URL to image

This is actually pretty easy for this site, because we'd nicely separated out getting the image from the templates themselves, so this step was fairly straightforward in the end, it was fairly repetitive though. I duplicated a field, found all usages of it, changed them and then tested the code to make sure it was all working properly.

Data migration

Now we have the duplicated fields, and we know they all work we need to get the data into them. We're going to load up any entity that references a file in one of the fields we've duplicated, loop over all the fields, and where there's a file we'll create a new media entity that references this file and insert this into the field on the outer entity. We'll save each entity as we go.

We don't have that much content on this site, so we can run these in an update hook, and the site will be down for a minute or so running the update hook, but that's okay for our use case. Other sites might require a different approach.

Without further ado, here's our code:

/** * Migrate image fields to media fields. * * @param string $entity_type_id * The entity type id. * @param array $image_field_map * An array of mappings, each sub array should have the following keys: * - source: The source image field name. * - destination: The destination media field name. * - media_bundle: The media bundle to create. * @param string|NULL $bundle_id * The bundle id. * * @return void */ function computerminds_core_migrate_to_media_helper(string $entity_type_id, array $image_field_map, string $bundle_id = NULL): void { $entity_storage = \Drupal::entityTypeManager()->getStorage($entity_type_id); // Construct a query to find all entities with the image fields. $entity_query = $entity_storage->getQuery(); if (isset($bundle_id)) { $entity_query->condition('type', $bundle_id); } // We don't want to check access. $entity_query->accessCheck(FALSE); // Add a condition for each image field. $field_conditions_group = $entity_query->orConditionGroup(); foreach ($image_field_map as $field_map) { $field_conditions_group->exists($field_map['source']); } $entity_query->condition($field_conditions_group); $entity_ids = $entity_query->execute(); // Process in chunks of 10. foreach (array_chunk($entity_ids, 10) as $entity_ids_chunk) { foreach ($entity_storage->loadMultiple($entity_ids_chunk) as $entity) { // Process each image field. foreach ($image_field_map as $field_map) { $image_ids = $entity->get($field_map['source'])->getValue(); $entity->set($field_map['destination'], NULL); foreach ($image_ids as $image_id) { $file = \Drupal::entityTypeManager() ->getStorage('file') ->load($image_id['target_id']); if (!$file) { $message = 'Media cannot be created. The %entity_type_id with ID: %entity_id of bundle: %bundle refers to the image file with ID: %fid. But there is no information about the file with this ID in the database.'; \Drupal::logger('image_field_to_media')->error($message, [ '%fid' => $image_id['target_id'], '%entity_type_id' => $entity_type_id, '%bundle' => $bundle_id, '%entity_id' => $entity->id(), ]); continue; } $media_data = [ 'bundle' => $field_map['media_bundle'], 'uid' => $file->getOwnerId(), 'created' => $file->getCreatedTime(), // @TODO: Make this work for languages. ]; // Asign the file to the correct field. switch ($field_map['media_bundle']) { case 'image': $media_data['field_media_image'] = $image_id; break; case 'document': $media_data['field_media_document'] = $image_id; break; } $media = \Drupal\media\Entity\Media::create($media_data); $media->save(); $entity->get($field_map['destination'])->appendItem($media->id()); } } $entity->save(); } } }

Note that I've hardcoded this with our specific fields on our media entities.

We can then call this helper like this:

function computerminds_core_update_9114() { $entity_type_id = 'node'; $bundle_id = 'article'; $image_field_map[] = [ 'source' => 'field_banner_image', 'destination' => 'field_banner_media', 'media_bundle' => 'image', ]; $image_field_map[] = [ 'source' => 'field_mobile_banner_image', 'destination' => 'field_mobile_banner_media', 'media_bundle' => 'image', ]; $image_field_map[] = [ 'source' => 'field_files', 'destination' => 'field_attachments', 'media_bundle' => 'document', ]; computerminds_core_migrate_to_media_helper($entity_type_id, $image_field_map, $bundle_id); }

I then went through and wrote an update hook for each entity type and bundle combination that I needed, following the same boilerplate pattern of an array of fields to map.

Once the update hooks have run, then I was able to check each of the bits of content and see that the media entities had been created correctly, and added correctly added to the entities.

Delete the old fields

The fun, last step! Deleting the old fields: which will remove the field data from the content entities, but not the actual file entities themselves, so they'll still be around to be referenced by the media entities.

This then also allows me to uninstall the File entity browser module, and then the Entity browser, Entity embed module and Dropzonejs module, big win because we now have many fewer modules to upgrade.

Deployment

Our deployments do this:

  1. Run database updates
  2. Import config
  3. Rebuild caches

To deploy this work, I committed each of the above steps, along with their exported config, to git. Then I was able to deploy each commit in turn, so that the site briefly had lots of empty media fields, and wasn't showing any images, but then minutes later had all the content migrated and then finally all the old fields and modules were gone. Oh, I also took a full backup before I started these deployments!

That's it for the first big step on the road to Drupal 10 for this site, but I have to reflect and say that having done similar types of data manipulation in Drupal 7, Drupal 9 makes this stuff much, much simpler!

ImageX: Compelling Content Marketing for Higher Education Websites

Compelling Content Marketing for Higher Education Websites amanda Wed, 03/01/2023 - 16:53

When a prospective student is making the choice of where to study, their first point of call is more often than not, the institution’s website. It’s where they learn about the exciting study programs, the bustling campus life, and the unique university vibe. Engaging text in combination with catchy visuals helps them find the answer to the main question: “Is this the right choice for me?”. That’s why the role of your website and content marketing is unmatched when it comes to boosting student enrollment and helping your higher ed institution stand out from its numerous competitors.

 

How can you make your university or college site genuinely attractive and informative for students, as well as for staff, faculty, parents, donors, and alumni? When it comes to best practices for higher education websites, content marketing is one of the most interesting topics to discuss. We’ve collated some of the ImageX team’s recent articles filled with content tips for higher education below.

 

Create vibrant, student-focused content

 

Although factors like university size, location, available majors, and costs are important, prospective students primarily base their decisions on emotion. Your homepage might be great at creating that “big-bang” first impression, which makes students’ hearts sing and lets them know they belong to this place. However, by navigating deeper into a higher education institution’s website, students are often faced with long and dull walls of text.

 

No worries — it’s totally possible to breathe life into your university site and turn it into a vibrant content hub! To begin with, you will need to assess your current pieces and decide what to keep, what to rework, and what to cut. These decisions need to be data-driven, so you might want to rely on marketing analytics platforms, research, and testing. Next, establish the content creation guidelines and move forward.

 

To fill your university website with vibrant voices, you could gather informal news from your students’ social media, create a submission form for club leaders to share announcements, and transform the lofty prose from researchers using everyday, easy-to-read language. Another great idea is to create interactive features so prospective students can get a feel of your campus

Image removed.Breathe life into your university site and assess your current content to decide what to keep, what to rework, and what to cut.

 

Embrace digital storytelling

 

We all love good stories. This love starts in our childhood when stories help us comprehend the world, and it accompanies us through our adult lives as we become prospective customers of various organizations. That being said, it shouldn’t come as a surprise that there is an ongoing content marketing trend to craft unique narratives with the organization’s audience as the main heroes. These compelling stories engage customers and inspire them to make conversions.

 

Your university could tell its impactful stories, too, and we are happy to guide you through the best storytelling practices. Since the rule of thumb is to center your narratives around your audience and their needs, the heroes of your stories could be your prospective students, current students, alumni, and so on. You could also dig deeper into exploring your audience and create more detailed “user personas” — for example, “a student who wants to study abroad in North America.”

 

Image removed.The heroes of your stories could be your prospective students, current students, alumni, and so on.

Storytelling 101: How to Create Website Content that Resonates With Your Audience.”

 

 

Be open to users with special needs

 

When crafting great content that reaches your university website’s audience, you need to give every user a chance to perceive it, even if they rely on assistive devices. Considering the diversity of audiences and the existing accessibility laws, creating an accessible website is a top priority in higher education, so you might have already implemented some accessibility guidelines with the help of a good design and development team.

 

However, accessibility is not created solely by website design and development experts. Website content also needs to be produced with accessibility in mind. A content marketing team’s contribution to website accessibility can be huge.

 

What does accessible content creation mean? We recommend starting with empathy and always thinking about how people with different abilities will experience your higher education site’s content. Next, take care of straightforward language, clear structure, ALT tags, descriptive links, transcripts and captions for audio and videos, HTML pages to replace inaccessible PDFs, etc. Finally, check your pages with third-party accessibility tools. See more useful details in our Top 10 Accessibility Tips for Content Editors.

 

Divide the “Herculean task” into chunks

 

In the previous chapter, we discussed the importance of creating accessible content and some of the best practices it involves. Ok, so you have a huge higher education website with innumerable pages for faculties, departments, programs, admission requirements, news, events, and so much more. Moreover, multiple people from different teams are involved in content creation. In this situation, making all the website’s content accessible may look like a Herculean task.

 

Instead of trying to make up a long list of problems that need to be addressed, we suggest taking an Agile approach. Originally created for developers, the Agile methodology has its values and principles fully applicable to any industry.

 

Based on this approach, you can transform the Herculean tasks into doable chunks on which you will be able to see meaningful progress. Set your priorities, or choose the most impactful pages to be updated first, then do the work in short cycles also known as sprints. However, in the future, you can prevent content accessibility issues from occurring so you don’t even have to deal with a Herculean task. Organize training for your staff and commit to continuous improvement — one of the Agile principles. 

 

“Humanize” your higher education content

 

Today, a learning environment needs to be inclusive and welcoming, as well as foster a sense of belonging. Creating inclusive content on your higher education website could greatly help you achieve this result. You need to consider the diversity of your university’s audience and craft messages that appeal to as many of its segments as possible, be it prospective students, parents, or other target groups. 

 

One of the ways to be on the same wavelength as them is to use their language. Another useful idea is to create stories where different groups of people are equally represented, which could help everyone recognize themselves. Consider also using diverse content formats to tailor to different preferences and abilities when it comes to consuming the information.

 

Whatever the techniques are, it all comes down to having a people-first approach to content marketing. Check out our article called “Humanize Your Higher Ed Website with Inclusive Content” for more information and tips about it. And never miss an awesome example of our customers — Ashland University — that created an inclusive digital space and emphasized their “We See You” philosophy.

 

Use the editorial features of a good CMS

 

Higher education websites have countless content pages that need to be updated regularly. Managing them all on a day-to-day basis is an arduous task for any marketing team. However, your website’s CMS can be a game changer in this area if it plays on your side. You just need to choose a platform that makes your editing workflows as robust, user-friendly, and intuitive as possible. Drupal could be your best choice here. 

 

Content in Drupal has a well-defined structure where the information about different content types, such as articles or events, is stored in standard sets of fields. The user-friendly admin dashboard makes it easy to manage pieces of different types across the entire website.

 

Drupal is endlessly flexible in enabling you to create various content layouts, as well as using ready components. One of the great examples of ready-to-go blocks is the starter kit by our team. It includes the most common block types such as an accordion menu, a carousel, a ping-pong block, and much more. 

 

Try alternative content sources 

 

All the content marketing tips and recommendations could create an impression that you and your marketing team always need to be perfect in providing large amounts of fresh, engaging, accurate, and accessible content. What about having enough time for producing it? One of your university faculties might invent the time machine someday, but before they do it, you need to find other solutions.

 

One of the secrets is you don’t have to create absolutely everything from scratch. There must be some podcast episodes, YouTube or TED videos, SlideShare or eLearning presentations, or other media on the web that could be useful to your university’s students. In addition, there are news, articles, or press releases from trusted sources that could keep your higher education site’s audience up-to-date on important events, discoveries, trends, and more. Finally, as we touched upon in the first chapter about making your site more vibrant, you could try exploring informal sources like students’ social media.

 

Gathering relevant third-party content and sharing it on your site is known as content curation. While implementing it, it’s best to not just share but provide a brief introduction to the shared pieces. Our article on smart content curation shares more tips and tricks for it describes its benefits, as well as walks you through the specific steps to get started. 

 

Final thoughts

 

There is always something new to learn about impactful content marketing for higher education.  So we are more than happy to be constantly discovering and sharing useful tips about it. Stay tuned for more article collections, and just reach out if you need any assistance or want to talk through your requirements. 

/sites/default/files/styles/original/public/2023-03/pexels-karolina-grabowska-8106661.jpg.webp?itok=qvV3HPwN Feature as an event Off Service Category Strategy Content Strategy Storytelling IsGated 0 Verticals Higher Education IsDownloadable 0

Lemberg Solutions: Drupal Commerce + SAP Integration: Solutions and Benefits

If you’ve been looking for a viable solution to extend the functionality of your Drupal Commerce platform, we have one. In this article, our Drupal Team Lead, Mykhailo Hurei, provides a comprehensive overview of SAP integration with Drupal Commerce. Keep reading to learn how we integrated the Drupal Commerce platform with SAP for one of our clients and find out what custom features we added. 

Matt Glaman: Check out the "Drupal at your fingertips" developer reference guide

Selwyn Polit has created a fantastic Drupal 9 and 10 developer reference guide called Drupal at your fingertips. The book is a reference guide that explains the various APIs within Drupal and examples of code for using them. The book's contents are available online, and all of the content is licensed under Creative Commons Attribution 4.0, making it available to share and modify with attribution. You can find the Drupal at your fingertips book online at: https://selwynpolit.github.io/d9book/ and its source at https://github.com/selwynpolit/d9book/tree/gh-pages.

Specbee: Migrate to Drupal 9 (or 10) Without Losing Your Hard-Earned SEO Ranking

Migrate to Drupal 9 (or 10) Without Losing Your Hard-Earned SEO Ranking Shefali Shetty 28 Feb, 2023 Subscribe to our Newsletter Now Subscribe Leave this field blank

Website migrations are never an easy decision and we get it. The fear of their SEO rankings being negatively affected often holds site owners back from migrating their CMS or upgrading from an older version. After all, it has been a long and hard process to get your website to the top of Google's search result pages, and you don't want all that effort to go to waste. 

However, this common concern can be addressed and mitigated before and during the migration process. With meticulous planning and a systematic migration approach, a website migration will not affect your SEO. Instead, with a CMS like Drupal that offers SEO and performance optimization techniques, your SEO ranking should see an upward trend.

In this article, we’ll discuss why a website migration to Drupal 9 does not have to mean sacrificing your SEO ranking. We'll go through some of the best practices and tips as well as what you need to do if you see a drop in ranking after the migration.

Image removed.

Why Migrate to Drupal 9 (or 10)

Most of our clients migrate/upgrade their CMS to Drupal 9 for one big reason: to fuel their business growth! Drupal 9 offers the high-performance tools and features needed to take your business to the next level.

Let’s get started with understanding why migrating your CMS to Drupal is important, especially in terms of SEO:

  • Upgrading your CMS to the latest version of Drupal will bring more features, stability, and security to your website while also increasing the performance of your site by​​ using the latest technologies. 
  • Drupal allows for easy management of important on-page optimization elements like meta tags, URLs, meta descriptions, titles and others that are vital to enhance your ranking.
  • Drupal is SEO-ready straight out of the box! A variety of built-in and contributed SEO boosting modules that can be easily integrated with a Drupal website enhances its indexability. 
  • Drupal’s clean and well-structured code makes it easier for search engines to understand your website’s content.
  • The highly customizable nature of Drupal enables you to tailor it to meet your SEO strategy's specific requirements.

Should you be concerned about a migration affecting your SEO?

A migration involves moving and mapping all your website's content, data, and functionality from an old version to a newer one. It's like charting a new course to a brighter future.  And they are never going to be identical. A CMS migration when done right cannot be a cause for your SEO ranking to get affected. 

Ideally, a website redesign or CMS migration is risk-free when no URL or structural changes are expected. But let’s give you a few reasons when you should be concerned:

  • When you’re changing domain names and your new URL structure is completely different than the old one. This can cause search engines to see these pages as new pages and will lose the existing SEO juice.
  • When internal links are lost during migration due to various reasons like a change in the URL structure, content reorganization or any manual migration errors.
  • When the content is not migrated properly and leads to duplicate content.
  • When a migration causes broken links which can lead to bad user experiences and consequently a dip in SEO ranking.
  • When there are problems with the website’s crawlability and indexability because of technical errors during a migration.

SEO Audit - First Step to a Successful Migration

We cannot emphasize enough how important an SEO audit is before a migration. 

Just like you would thoroughly examine and fix your car before a big road trip to ensure a smooth and safe journey, an SEO audit can help you identify and avoid potential technical issues or SEO problems before a migration. It also allows you to plan for redirects, establish a baseline for measuring the impact on SEO performance and ensure current best practices.

What happens during an SEO Audit?

Your ideal Drupal agency should provide you with a comprehensive SEO audit checklist before planning the CMS migration. Read this article to find out how to evaluate a Drupal partner for your next project.

Here are some of the most significant elements that are analyzed during an SEO audit:

  • Check if robot.txt exists and is configured properly to make the website crawlable
  • Verify if sitemap.xml exists and is optimized
  • Clean URLs are enabled for SEO Friendly URLs
  • Appropriate meta information and tags are present for web pages
  • Check if structure data is enabled for the site.
  • Verify if a canonical URL set for all the pages
  • The titles and descriptions are optimized
  • Check for duplicate content
  • Check for broken links
  • Find out if analytics tools are present on the application for tracking

The Do's and Don'ts

Do: Create a full backup of your website

Before you begin the migration process, make sure to create a full backup of your website to ensure that you have a copy of all your website's files and data.

Do: Benchmark current keyword rankings

Benchmarking old rankings is an important step when migrating a website to a new domain or URL structure. It helps you understand how your website is currently performing in search engines and identify any potential issues that may affect your SEO efforts after the migration.

Do: Benchmark organic traffic levels

It helps you monitor any changes in organic traffic after the migration and allows you to identify any issues that may be affecting your SEO efforts.

Do: Keep the same URL structure

Try to keep the same URL structure of your website, if possible. This will help to maintain the authority of your website and avoid any broken links

Do: On-page optimization

On-page optimization is crucial when migrating a website to ensure that your site is optimized for search engines and user experience. Here are some steps to take for on-page optimization during a website migration:

  • Update content
  • Optimize meta elements
  • Use header tags
  • Optimize images
  • Improve page speed
  • Implement structured data

Do: Use Drupal SEO Modules

Drupal is a popular content management system (CMS) that provides several SEO modules that can help with website migration. Here are some SEO modules you may want to consider when migrating a Drupal website:

  • Pathauto
  • Redirect
  • Metatag
  • XML sitemap
  • Google Analytics
  • Schema.org

Do: Test Contact form, Thank you Page, Conversion code

It is important to test all contact forms, thank you pages, and conversion codes while migrating a website. Here are some tips to help you ensure that these elements are working correctly after the migration:

  • Test all contact forms - Make sure to test all contact forms on your website to ensure that they are working correctly. This includes testing the form fields, validation messages, and submission process.
  • Verify thank you pages - Check that all thank you pages are working properly and have the correct URLs. Test them to ensure that they load correctly after form submissions or other actions.
  • Check conversion codes - If you have any conversion codes installed on your website, such as Google Analytics or Facebook pixel, make sure to check that they are working properly. Verify that the codes are firing correctly on the appropriate pages and that they are tracking conversions accurately.
  • Update any changes - If you make any changes to your contact forms, thank you pages, or conversion codes during the migration process, make sure to update them on the new website as well. This will help ensure that everything continues to work correctly.

Do: Update sitemap.xml and robots.txt

Update your Sitemap.xml and Robots.txt files to reflect any changes in your website's URL structure. Read more about sitemaps and Drupal’s XML sitemap modules here.

Do: Monitor performance

Monitoring a website after migration is an important step to ensure that everything is functioning correctly and to identify any issues that may arise. Here are some steps you can take to monitor your Drupal 9 website’s performance after migration:

  • Monitor traffic and rankings
  • Check for broken links
  • Monitor website speed
  • Monitor server errors
  • Test forms and conversions

Don’t: Delete your old site

We know already mentioned this in our Do’s but we can’t stress enough how important this step is! Even after the website migration, it is recommended not to delete your old site immediately. There are several reasons why you should keep your old site for a while. Like backup and recovery, content comparison and redirects.

Don't: Move to live before testing/reviewing it completely

It's important to thoroughly test and review the new site before pushing it live to ensure that it is functioning correctly and there are no errors or issues that could harm your SEO. By taking the time to test and review the new site, you can identify and fix any potential issues before they impact your rankings and traffic. Make sure you have completed these activities before pushing it to live:

  • Checked all links
  • Verified title tags and meta descriptions
  • Tested site speed
  • Verified site structure and content
  • Tested contact forms
  • Ensured that all content and pictures are present on the new page
  • Confirmed URL structure and 301 redirects are set up correctly

Don’t: Schedule migration during peak traffic stretches

To minimize the potential negative impact of a website migration, it is generally advisable to avoid scheduling it during peak traffic periods when the site is experiencing its highest levels of user activity. This is because any disruptions to the site's functionality or accessibility during these times could lead to a poor user experience and potentially harm your search engine rankings or revenue. Instead, consider scheduling the migration during a time when traffic levels are typically lower, such as weekends or overnight, to minimize the risk of disruption and ensure a smoother transition for your users.

Image removed.

What happens if there’s a drop in ranking after a migration?

Let’s get straight to the point. If you notice a drop in your SEO ranking after a migration:

  • Keep calm. Take a step back and reassess the situation. Many times the drop is temporary because search engines will need to re-crawl your website.
  • Check if this is happening due to an update in the algorithm
  • Use Google Analytics to identify the pages that have been affected the most and are getting the least organic traffic
  • Create a list of those URLs. Analyze these pages for URL structure, broken links, duplicate content, page errors, canonical URLs and other content changes.
  • Use a page performance testing tool like GTMetrix and check if the performance has been affected. Follow best page speed practices (optimized images, CSS and other files) to fix this issue.
  • If you have changed your hosting provider along with the migration, find out if there’s a performance issue because of the server change.
  • Make sure all the pages are indexible (at least the ones you want to rank)

Final Thoughts

A successful migration process starts with an in-depth analysis of your current website’s structure, content, and code to identify any potential SEO risks. During this analysis, you should also consider factors such as which CMS version you are currently running, the cost and timeline of the migration process, and how to ensure that your SEO rankings remain intact during the transition. Keep checking your index status in the search console to make sure everything is in order once the migration is complete. Finally, it always helps to communicate regularly with your new hosting provider to ensure that all the performance issues are taken care of in a timely manner. 

A CMS migration does not have to negatively impact your SEO ranking. In fact, a migration to Drupal 9 (or 10), can potentially increase your SEO rankings due to the improved speed and performance of your website. If you’re looking for a 100% Drupal-first company that specializes in Drupal migrations, then look no further than Specbee. Our certified experts have completed numerous successful migrations to Drupal 9 and can help ensure that your website remains SEO-friendly​​. Contact us today for a free consultation and find out how we can help you migrate with ease.

Author: Shefali Shetty

​​Meet Shefali Shetty, Director of Marketing at Specbee. An enthusiast for Drupal, she enjoys exploring and writing about the powerhouse. While not working or actively contributing back to the Drupal project, you can find her watching YouTube videos trying to learn to play the Ukulele :)

Email Address Subscribe Leave this field blank Drupal 9 Drupal 10 Drupal Module Drupal Migration Drupal Planet

Leave us a Comment

 

Recent Blogs

Image Image removed.

Migrate to Drupal 9 (or 10) Without Losing Your Hard-Earned SEO Ranking

Image Image removed.

Get the Most Out of Apache Solr: A Technical Exploration of Search Indexing

Image Image removed.

From Mother to Manager - Shreevidya’s Career Story

Need help Migrating to Drupal 9? Schedule a call

Featured Case Studies

Image removed.Image removed.

Upgrading the web presence of IEEE Information Theory Society, the most trusted voice for advanced technology

Explore
Image removed.Image removed.

A Drupal powered multi-site, multi-lingual platform to enable a unified user experience at SEMI

Explore
Image removed.Image removed.

Great Southern Homes, one of the fastest growing home builders in the US, sees greater results with Drupal

Explore
View all Case Studies

CTI Digital: How Drupal Has Evolved to Make Content Editors Lives Easier

Image removed.

Drupal has come a long way since its inception as a content management system (CMS) in 2001. Over the years, Drupal has continued to evolve and improve, positioning itself as a top choice for organisations looking to build a dynamic and engaging online presence. 

One of the most significant changes in Drupal's evolution has been its focus on becoming more user-friendly for content editors. In this blog, we’ll explore some of the biggest changes that have occurred from Drupal changing its positioning to being more user-focused.

Image removed.

CTI Digital: Drupal Through The Years: The Evolution of Drupal

Image removed.

Drupal has long been known as a powerful and flexible content management system (CMS), but it’s also well known for its complexity. In the early days of Drupal, creating and managing content required a deep understanding of the platform, its architecture and many intricacies, making it challenging for non-technical users to navigate.

However, over the years, Drupal has made significant changes to become more user-friendly and accessible for content editors. In this blog, we’ll take a closer look at the evolution of Drupal and the changes that Drupal and the community have made to create a more accessible platform for content editors.

Image removed.