{"kind":"crawlcheck-platform-fix","v":1,"platform":"drupal","platform_name":"Drupal","code":null,"groups":[{"group":"robots","title":"Edit robots.txt","codes":["ROBOTS_RULES_SHADOWED","ROBOTS_NO_SITEMAP","ROBOTS_NOT_200","ROBOTS_IS_HTML","ROBOTS_IS_CATCHALL","ROBOTS_DISALLOW_ALL","ROBOTS_CTYPE","ROBOTS_BLOCKED","RENDER_RESOURCE_BLOCKED","INSTRUCTION_CONFLICT","DECLARED_SITEMAP_REFUSED","DECLARED_SITEMAP_BROKEN","SITEMAP_BLOCKED","AI_OPTOUT_SET","BOT_BLOCKED_NOT_CITED","BOT_RULES_SHADOWED_NOT_CITED"],"steps":["Drupal ships robots.txt in the web root next to index.php; edit it there, or use the RobotsTxt module to edit it in the admin.","With Composer-managed core, exclude robots.txt from drupal/core-composer-scaffold (file-mapping \"[web-root]/robots.txt\": false) so a core update does not overwrite your edits."],"page":"https://crawlcheck.io/fix/drupal#robots"},{"group":"sitemap","title":"Publish a sitemap","codes":["NO_SITEMAP_FOUND","SITEMAP_NO_LASTMOD","SITEMAP_IS_HTML","SITEMAP_DECLARES_NOTHING","SITEMAP_UNREADABLE","SITEMAP_ORIGIN_ERROR","ROBOTS_NO_SITEMAP","DECLARED_SITEMAP_BROKEN","DECLARED_SITEMAP_REFUSED"],"steps":["Install Simple XML Sitemap (or XML Sitemap); it serves /sitemap.xml with lastmod and can add itself to robots.txt."],"page":"https://crawlcheck.io/fix/drupal#sitemap"},{"group":"llms","title":"Publish llms.txt","codes":["NO_LLMS_TXT","NO_LLMS_TXT_NOT_CITED"],"steps":["Put llms.txt in the web root next to index.php."],"page":"https://crawlcheck.io/fix/drupal#llms"},{"group":"hsts","title":"Send HSTS","codes":["HSTS_MISSING","HSTS_PRELOAD_INELIGIBLE","HSTS_PRELOAD_REMOVED"],"steps":["Security Kit (seckit) module → SSL/TLS → HTTP Strict Transport Security, or set the header in the web server config."],"page":"https://crawlcheck.io/fix/drupal#hsts"},{"group":"bots","title":"Let crawlers through","codes":["CHALLENGE_SERVED_200","CHALLENGE_PINNED_AT_EDGE","ANSWER_ENGINE_REFUSED","UNIFORM_REFUSAL","HOMEPAGE_REFUSED","HOMEPAGE_IS_INTERSTITIAL","ORIGIN_REFUSED_SCANNER","CRAWLER_SERVED_LESS","CRAWLER_REDIRECTED_AWAY","BOT_BLOCKED_NOT_CITED"],"steps":["Check modules that block or rate-limit clients (Antibot, CrowdSec, Perimeter, Honeypot rules on full pages) and the host's firewall."],"page":"https://crawlcheck.io/fix/drupal#bots"},{"group":"render","title":"Serve the text, not just code","codes":["PAGE_IS_MOSTLY_CODE","CONTENT_NEEDS_JAVASCRIPT"],"steps":["Turn on CSS and JavaScript aggregation (Configuration → Performance) and remove modules that add scripts to every page."],"page":"https://crawlcheck.io/fix/drupal#render"},{"group":"schema","title":"Fix the structured data","codes":["ENTITY_COLLISION","ENTITY_NO_COORDINATES","GEO_COUNTRY_MISMATCH","NAP_NAME_DRIFT","NAP_UNDECLARED_LISTING"],"steps":["Schema.org Metatag module: set the Organization or LocalBusiness fields once, site-wide."],"page":"https://crawlcheck.io/fix/drupal#schema"},{"group":"cache","title":"Clear stale copies","codes":["STALE_CACHE_SERVED","MACHINE_FILE_CACHE_STALE","MACHINE_FILE_CACHE_SPLIT"],"steps":["Clear caches (drush cr or Configuration → Performance), then purge the CDN or Varnish."],"page":"https://crawlcheck.io/fix/drupal#cache"}],"rules":"https://crawlcheck.io/rules","reading":"Where to make each fix on Drupal. The general fix for each finding is in its report and at /rules/<CODE>; these steps say where that change is made on this platform, and say so when the platform cannot do it."}