Article
Drupal deployment workflow
The most important concept: Drupal treats these as different layers.
- Internal route: permanent content identity; example: /node/42
- Path alias: human-friendly name; example: /es/el-sermon-de-la-montana
- Redirect: sends an old request elsewhere; example: old alias → new alias
- Canonical tag: indicates the preferred URL for search engines; example: link rel="canonical"
- Sitemap: supports search-engine discovery of URLs; example: /sitemap.xml
An alias is not a redirect, and a canonical tag does not redirect visitors.
Pathauto
Pathauto generates aliases with token-based patterns such as [node:title]. Support includes nodes, taxonomy terms, users, conditions, multilingual patterns, transliteration, and bulk regeneration.
Settings requiring close attention:
- Patterns and tokens
- Transliteration and lowercase normalization
- Alias changes after title changes
- Handling of old aliases: deletion, retention, or redirection
- Manual aliases versus automatically generated aliases
- Bulk actions: create, update, and all
- Language-specific aliases and collisions
Avoid unstable information such as categories or dates in URLs unless genuinely part of the permanent information architecture.
Redirect and Redirect 404
Redirect provides manual redirects, automatic redirects after alias changes, canonical-path handling, redirect usage tracking, and integration with Drupal caching. Redirect 404 records missing URLs for identification of broken inbound links.
Important HTTP status codes:
- 301: permanent move; appropriate for changed content URLs and potentially cached by browsers
- 302 or 307: temporary move
- 410: content intentionally removed with no replacement
- 404: no suitable content exists
Avoid the following:
- Redirect chains: /old → /newer → /newest
- Redirect loops
- Redirecting every 404 to the homepage; search engines may treat that pattern as a soft 404
- Creating redirects for random bot-generated 404 requests
Use /admin/reports/page-not-found periodically to find legitimate broken links.
Multilingual URLs
Current site configuration uses:
- English: no prefix
- Spanish: /es
- German: /de
Drupal can determine language from path prefixes or domains, and URL detection normally should have high priority.
Important topics:
- A distinct alias for each translation
- hreflang references between translated versions
- Canonical tags that normally point to the canonical URL of the same language, not always to English
- A stable language-prefix policy after launch
Metatag and Schema.org
The project already includes Metatag, Open Graph, Twitter Cards, and Schema.org modules. Metatag controls search-result metadata and social-sharing previews.
Current configuration already covers canonical URLs and basic Article structured data. Useful improvements remaining:
- Configure Open Graph and Twitter Card defaults; modules are enabled, but corresponding default tags appear absent
- Add robots: noindex to the 404 metadata configuration
Also validate Schema.org output with Google’s Rich Results Test after modifications.
Simple XML Sitemap
Sitemap configuration already indexes articles, pages, Bible verses, and selected taxonomy content. Support includes multilingual URLs, hreflang, custom links, images, cron generation, and search-engine submission.
Key points:
- Only canonical, published, publicly accessible content belongs in the sitemap
- Sitemap inclusion does not guarantee indexing
- Submit /sitemap.xml to Google Search Console and Bing Webmaster Tools
- Regenerate after major migrations or URL changes
- The skip_untranslated: true setting prevents nonexistent translations from appearing
Linkit
Use Linkit when editors create internal links. Linking to Drupal entities instead of pasting fragile URLs makes internal links much easier to maintain when aliases change.
Server redirects versus Drupal redirects
Different layers serve different jobs:
- Web server or CDN: HTTP→HTTPS and www→non-www
- Drupal Redirect: individual content URLs and aliases
- Pathauto: generation of new aliases
- Metatag: canonical and social metadata
- Sitemap: search-engine discovery
If the VPS sits behind a proxy or CDN, Drupal must correctly trust forwarded host and HTTPS headers; otherwise incorrect canonical URLs may be generated.
Configuration management
The recent cst situation illustrates an essential Drupal workflow:
- cst: compare active database configuration with files
- cim: deploy committed files into the database
- cex: export database configuration into files
- Never run cex on an environment with stale configuration unless repository configuration should be overwritten intentionally
Next priorities: Open Graph and Twitter defaults, noindex on 404 pages, review of the Redirect 404 report, and verification of /sitemap.xml plus multilingual canonical and hreflang output.