SEO checklist does not check already completed items correctly

Created on 13 December 2024, 8 days ago

Problem/Motivation

When you install Drupal CMS and enable all modules, you already have things like Clean URLs, or XML sitemaps done. However, when you visit SEO checklist config page (/admin/config/search/seo-checklist), you get this message:

SEO checklist found 7 unchecked items that were already completed and checked them for you. Save the form to record the changes

This message suggest, that the module checked all settings and marked the ones, that are done as complete. Which is actually not true and some items are marked as incomplete even they are done.

Not sure if this is an issue with the SEO checklist module , or the way how we install things, but posting the issue here, because it could be very confusing for users, if they see for example "Clean URLs" marked as incomplete, when actually it is enabled and working correctly. Users can start searching and changing configuration of the site for no reason, which we should prevent. Can we do something on the Drupal CMS side with this to fix this?

If not, I think we should consider removing the module, until these bugs are fixed.

I have briefly checked all options - some are more serious, others less (the list can be incomplete / inaccurate):

  • Enable clean URLs. - should be already marked as completed
  • Create Pathauto patterns - there are already patterns for existing content types, so probably should be marked as completed as well
  • Install and Enable XML Sitemap module - this is very confusing, because it checks the other sitemap module, not the one which is included in the Drupal CMS
  • Set up Cron - cron is set up by default, but we should encourage users to turn it off and setup the external cron to not block user request, so this is either confusing, without any link to the documentation
  • Configure Easy Breadcrumbs module - the module is preconfigured
  • Turn on Create New Revisions for all content types - all content types have revisions turned on, but still shows as incomplete
  • Configure Honeypot module - the module is preconfigured
  • Install and Enable Advanced CSS/JS Aggregation module - the module is not recommended in D11, core does mostly the same, which could be confusing here
  • Secure Your Website with HTTPS - I am on HTTPS and still this is unchecked
  • Adjust Performance Admin Settings - we have preconfigured this
  • Configure Image Styles - we have preconfigured this

Steps to reproduce

Install Drupal CMS and enable all recommended recipes like SEO, forms, ...
Visit SEO checklist page /admin/config/search/seo-checklist
Observe that some options are incorrectly marked as not complete

Proposed resolution

Figure out how to fix this to not confuse users. If it cannot be done without fixing this in the module, remove the module until issues are fixed.

Remaining tasks

User interface changes

API changes

Data model changes

🐛 Bug report
Status

Active

Component

Track: SEO

Created by

🇸🇰Slovakia poker10

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

  • Issue created by @poker10
  • 🇺🇸United States thejimbirch Cape Cod, Massachusetts

    Thanks for the thorough review. This will help with 📌 Review checklist items for relevance Active . Postponing on that.

  • 🇸🇰Slovakia poker10

    Thanks for linking the issue @thejimbirch! I am even more concerned now that I see that it was created and there is no progress towards a fix from August (not blaming anyone).

    Given this and reasons mentioned above, I think we should not postpone this issue, instead we should remove the module from the Drupal CMS 1.0.0, unless it will be fixed very soon (or unless other measures will be taken to avoid confusion).

    I think it will be much worse, if we keep the module in the current shape included and marketers will start searching and changing the site configuration for no reason, just because of the incorrect reports. Removing the module temporarily seems like a better solution to me, in this situation.

    So let's remove the postponed status, if possible. What do you think? Thanks!

  • 🇬🇧United Kingdom catch

    The only item on the list that's not preconfigured by Drupal CMS that I can see is an https connection, and that's standard both on ddev and any hosting environment these days, so would be correct in the vast majority of cases already (not the case ten years ago so it probably made sense when it was added).

    So I don't really see that there's any benefit to the module even if all the items were checked - then it's just telling you that you don't need to do things you don't need to do?

  • 🇸🇰Slovakia poker10

    @catch There are some other items in the module's checklist. I put to the IS only these which are confusing or not working (sorry if it was not clear from my first post).

  • 🇬🇧United Kingdom catch

    @poker10 ah sorry yes that wasn't obvious to me but probably would be obvious to someone who's used SEO checklist more than zero times.

    Either way installing an extra xmlsitemap module or advagg could hose someone's site in some circumstances (although advagg will probably never have an 12.x release) so agree that bad advice is worse than no advice.

    Bumping to major.

  • 🇺🇸United States thejimbirch Cape Cod, Massachusetts

    I made a first pass at updating the checklist items. 📌 Review checklist items for relevance Active Would love feedback.

    The seo_checklist module checks if a module is enabled, and pre-checks those items for the user.

    It does not check for configuration settings, or things like if you are on HTTPS or not. In those instances, I aimed to rewrite the descriptions as Verify or review the settings. Just because something is preconfigured doesn't mean it should be hidden. I believe anyone interested in optimizing their website should learn to understand where and how to configure their site.

    I only became a maintainer of the seo_checklist module over the summer and removed broken links, removed cruft, and made a release for Drupal 11. I created the issue to update the items and a few more, but my contribution and personal volunteer time have been occupied by Drupal CMS. I believe we can get the module to a state for the release where it will be useful for Drupal CMS users.

    In the future, the Checklist API module has a long term goal of converting Checklists into entities. 🌱 Create a new architecture for checklists as config entities, with tasks fulfilled by conditions Active . Once that happens, the SEO Checklist will need to be rewritten, and at that time we would be able to check off any checklist item from a recipe's config actions. Phenaproxima is the driving force behind that, My hopes is that he will be able to find time for that again in the new year.

  • 🇦🇺Australia pameeela

    @thejimbirch I haven't looked at how the form works but is it an option for us to default items to 'on' if we've configured them by default? Not sure how the state for this stuff is stored, sorry if that's a stupid question.

  • 🇸🇰Slovakia poker10

    I agree that switching on the items, which Drupal CMS preconfigures, will be the best, if possible. And/or maybe update descriptions on items, which cannot be checked by the module, to clearly state that - so that a user is aware, that the specific item is off, but it has not been automatically checked (so it can be already done).

  • 🇺🇸United States _doyle_

    Taking a look through the issue and the current state of the recipe in Drupal CMS here is what I think we should aim to change to reduce confusion and improve the user experience:

    ## General: Fix the issue with items not being automatically checked for items that are handled by the SEO Recipes and/or Core.
    Configure XML Sitemap
    Setup Cron
    Enable Clean URLs
    Configure Easy Breadcrumbs
    Configure Honeypot
    Adjust Performance Settings
    Configure Image Styles

    We should be able to check the things that the SEO recipe configures, but we won’t have much control over the other ones and we don’t want to make this a dependency for them so some of this will need to be on the users to handle manually which I think is fine.

    Additional recommendations to further improve the UX/clean up some legacy items:

    ## Search Engines
    Simple Sitemap and XML Sitemap are both heavily used modules. There are use cases for both - but for Drupal CMS Simple Sitemap makes more sense. It likely makes sense from an SEO Checklist perspective to support both.
    Install and Enable XML Sitemap Module should be reworded to reference/link to both.
    This could be turned into a smart option checking if either module is installed and wording appropriately.
    Configure XML Sitemap module should be contextual based on which module is installed.
    Set Up Cron - Add a link to Drupal’s Cron page w/ a longer description that we recommend this be set up on your hosting environment for more complex sites?
    Group the Google and Microsoft account information together.

    ## Optimizing Content
    On the optimizing content section - adding a 2nd sitemap is going to be confusing for new users. Recommend
    Move search 404 to Clean URLs section
    Consider consolidating Optimizing Content and On-page Optimization.

    ## On-Page optimization
    Consider removing the Yoast SEO setup if the module is having issues until they are resolved - not urgent but could be a poor user experience.
    Consider adding sections around accessibility with https://www.drupal.org/project/editoria11y . Accessibility does have an impact on SEO and is included with Drupal CMS.

    ## Security and Performance
    Remove advagg related checklist items
    Reword "Secure your website with https" to "Confirm your site is served over HTTPS"
    Remove Move to fast hosting.

    ## Mobile and Social
    Change “Make sure website is responsive.” to “Confirm your website loads responsively on mobile and tablet devices”

Production build 0.71.5 2024