<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Drupal — Articles | WebPro Company OÜ</title>
    <link>https://webpro.company/blog/tag/drupal/</link>
    <atom:link href="https://webpro.company/blog/tag/drupal/rss.xml" rel="self" type="application/rss+xml" />
    <description>Articles on Drupal development: version migrations, automated workflows, maintenance tools and build lessons from WebPro&apos;s practice.</description>
    <language>en-US</language>
    <lastBuildDate>Thu, 02 Jul 2026 06:00:00 GMT</lastBuildDate>
    <item>
      <title>Why does Drupal get slower over time?</title>
      <link>https://webpro.company/blog/why-drupal-gets-slower-over-time</link>
      <guid isPermaLink="true">https://webpro.company/blog/why-drupal-gets-slower-over-time</guid>
      <pubDate>Thu, 02 Jul 2026 06:00:00 GMT</pubDate>
      <category>Performance</category>
      <category>Drupal</category>
      <category>Maintenance</category>
      <description>Many Drupal sites are fast when launched, but become heavier over the years. The cause is usually not Drupal itself, but how the platform is maintained, extended and filled with content over time. Slowness rarely comes from one change A Drupal site does not usually become slow overnight. It is usually a gradual process: more content is added; more images and files are uploaded; new modules are installed; small custom features are built; analytics, marketing and chat scripts are added; cache or server configuration falls behind; old solutions remain in place next to new ones. Each individual change may seem small. Together, they can make the site slower, harder to manage and more expensive to develop further. Content growth has a bigger impact than expected A large organisation&apos;s Drupal…</description>
    </item>
    <item>
      <title>Drupal 7 Migration Statistics in 2026: What the Numbers Really Mean</title>
      <link>https://webpro.company/blog/drupal-7-migration-statistics-2026</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-7-migration-statistics-2026</guid>
      <pubDate>Sat, 20 Jun 2026 06:00:00 GMT</pubDate>
      <category>Migration</category>
      <category>Drupal</category>
      <category>Audit</category>
      <category>Security</category>
      <description>A Drupal 7 migration in 2026 should not be treated as a simple technical upgrade. The statistics point to a wider operational risk that requires audit work, budgeting, content migration planning, and editorial interface decisions. Drupal 7 Has Not Disappeared, Even Though Official Support Has Ended Official security and compatibility support for Drupal 7 ended on 5 January 2025. Drupal.org explains on its Drupal 7 End of Life page that Drupal 7 no longer receives regular community security or compatibility updates after that date. In 2026, the question is no longer whether Drupal 7 will reach end of life. It already has. Public usage data still shows that many websites have not yet moved to a newer Drupal version or another platform. According to Drupal.org usage statistics, more than…</description>
    </item>
    <item>
      <title>Drupal vs Headless CMS: which approach fits a large organization&apos;s digital platform?</title>
      <link>https://webpro.company/blog/drupal-vs-headless-cms</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-vs-headless-cms</guid>
      <pubDate>Sat, 20 Jun 2026 06:00:00 GMT</pubDate>
      <category>Drupal</category>
      <description>When an organization plans a new digital platform or modernizes an existing Drupal website, the discussion often turns to one question: should Drupal be used as a full content management and web platform, or should the organization move toward a headless CMS model? The right answer depends less on the trend and more on how content, services, users and administration work in practice. Drupal vs Headless CMS: which approach fits a large organization&apos;s digital platform? When an organization plans a new digital platform or modernizes an existing Drupal website, the discussion often turns to one question: should Drupal be used as a full content management and web platform, or should the organization move toward a headless CMS model? This is not only a technical choice. For larger…</description>
    </item>
    <item>
      <title>Drupal admin interface as an editorial workbench</title>
      <link>https://webpro.company/blog/drupal-admin-interface-editorial-workbench</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-admin-interface-editorial-workbench</guid>
      <pubDate>Thu, 18 Jun 2026 06:00:00 GMT</pubDate>
      <category>Development</category>
      <category>Drupal</category>
      <category>Maintenance</category>
      <description>Drupal is a strong platform for complex digital services, but its long-term value depends on how well people can use it every day. The admin interface should support the editorial team, not slow it down. The admin interface is part of service quality Public-facing user experience usually receives most of the attention. That is understandable. Visitors, residents, students, customers or partners see the public website first. But there is another important user group: the people who create, update, translate, review, publish and archive content. When their work happens in a slow or confusing admin interface, the impact appears quickly: content is updated less often; errors remain visible for longer; editors need more support; developers are asked to handle changes the content team should…</description>
    </item>
    <item>
      <title>Drupal CMS 1 to Drupal CMS 2 upgrade</title>
      <link>https://webpro.company/blog/drupal-cms-1-to-2-upgrade</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-cms-1-to-2-upgrade</guid>
      <pubDate>Thu, 18 Jun 2026 06:00:00 GMT</pubDate>
      <category>Migration</category>
      <category>Drupal</category>
      <category>Maintenance</category>
      <description>Drupal CMS 2.0 brings a new starting point, Canvas and site templates, but an existing site created from Drupal CMS 1 does not automatically become the same thing. Before changing it, you need to understand what the site actually uses. Drupal CMS 2.0 raises an obvious question: if a site started from Drupal CMS 1, can it simply be upgraded to Drupal CMS 2? The short answer: carefully. Drupal CMS is not a product version in the same sense as a Drupal Core major version. The Drupal CMS project page describes it as a starting point for new sites. Once a site has been created, what you have is a Drupal site with selected modules, configuration and content. That means Drupal CMS 1 to 2 should not be treated as just a Composer command. It should be treated as a technical change to an…</description>
    </item>
    <item>
      <title>Drupal CMS 2.0 and Canvas in a client project</title>
      <link>https://webpro.company/blog/drupal-cms-20-canvas-client-project</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-cms-20-canvas-client-project</guid>
      <pubDate>Thu, 18 Jun 2026 06:00:00 GMT</pubDate>
      <category>Drupal</category>
      <category>AI</category>
      <category>Development</category>
      <description>Drupal CMS 2.0 promises a faster start, visual page building and AI-assisted workflows. In a client project, the important question is not only how good the demo looks, but how the solution behaves two years later. Drupal CMS 2.0 was released on 28 January 2026. Its main themes are Canvas, AI tools and site templates. Drupal.org describes it as a way for marketing teams to launch branded sites faster. This is an important shift for Drupal. Drupal has long been strong for complex systems, but getting started has often required more technical work than simpler CMS products. Drupal CMS is an attempt to reduce that friction. What changed in Drupal CMS 2.0? Drupal CMS 2.0 is not a separate technology branch. It is still Drupal, but with a new starting point. The main changes include: Canvas…</description>
    </item>
    <item>
      <title>Component-based Drupal — how it is built in practice</title>
      <link>https://webpro.company/blog/component-based-drupal</link>
      <guid isPermaLink="true">https://webpro.company/blog/component-based-drupal</guid>
      <pubDate>Mon, 08 Jun 2026 06:00:00 GMT</pubDate>
      <category>Development</category>
      <category>Drupal</category>
      <description>Drupal has several ways to build a page from components. Which one fits depends on whether the layout decision belongs to the editor or the developer. Component-based development means that page content and design are built from reusable blocks — each block is self-contained, tested and usable in multiple places. The opposite approach is page-by-page design: every page has its own layout, there are no shared components, and code is duplicated. In Drupal, this is an architectural choice made at the start of a project. Changing it later is expensive. Why it suits Drupal particularly well Drupal is strongly content-oriented. Content is structured — fields, content types, taxonomy. That structure provides a natural foundation for components: when content is defined as fields, the same…</description>
    </item>
    <item>
      <title>Headless Drupal — when it actually makes sense</title>
      <link>https://webpro.company/blog/headless-drupal-when-it-makes-sense</link>
      <guid isPermaLink="true">https://webpro.company/blog/headless-drupal-when-it-makes-sense</guid>
      <pubDate>Sun, 07 Jun 2026 06:00:00 GMT</pubDate>
      <category>Development</category>
      <category>Drupal</category>
      <description>Headless has been a popular term for a few years. Like all architectural choices, it suits some projects well and others not at all. Headless Drupal means Drupal serves only as the backend — managing content, users, permissions and delivering data through an API. The frontend — what visitors actually see — is built with a separate technology: Next.js, Gatsby, Vue, React or another framework. The alternative is &quot;coupled&quot; or traditional Drupal, where Drupal manages content and also renders HTML directly to the browser. When headless is justified Multiple channels, one content source When the same content needs to reach a website, a mobile app, digital signage and partner APIs — headless is the natural choice. Drupal manages content in one place and each channel consumes it in its own…</description>
    </item>
    <item>
      <title>How to assess Drupal development quality</title>
      <link>https://webpro.company/blog/drupal-quality-indicators</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-quality-indicators</guid>
      <pubDate>Sat, 06 Jun 2026 06:00:00 GMT</pubDate>
      <category>Audit</category>
      <category>Drupal</category>
      <description>A good Drupal site works. A very good Drupal site still works after the next security update, the next developer and the next three years. Drupal project quality cannot be assessed from the browser. A clean design and fast loading time are visible — code structure, deployment process and technical debt are not. Here are the indicators to ask about and look for. Version control and deployment What should be in place: Code is in Git, changes go through pull requests or at minimum through branches Production is not deployed to directly — there is a separate development and staging environment Deployment is automated or at least documented step by step Red flag: If someone says &quot;we uploaded via FTP&quot; or &quot;we made the change directly in production&quot; — this is never a one-off incident, it is a…</description>
    </item>
    <item>
      <title>How much does a Drupal website cost?</title>
      <link>https://webpro.company/blog/drupal-website-cost</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-website-cost</guid>
      <pubDate>Fri, 05 Jun 2026 06:00:00 GMT</pubDate>
      <category>Development</category>
      <category>Drupal</category>
      <description>&quot;How much does a Drupal website cost?&quot; — there is no single answer, because Drupal is a platform, not a product. Here is what the price actually covers. Drupal website pricing cannot be approached like buying a car. The same question can mean a simple informational site, a complex information system with CRM integrations, or a hospital where hundreds of editors with different roles manage content. Option A and option B differ by a factor of ten. This is why honest developers will not give you a price before understanding what you actually need. What affects the price Functional complexity Drupal contrib modules cover many common needs — news feeds, events, multilingual support, user management, search. If you need something that off-the-shelf modules do not cover, it needs to be…</description>
    </item>
    <item>
      <title>Drupal CMS vs Drupal — what is the difference?</title>
      <link>https://webpro.company/blog/drupal-cms-vs-drupal-core</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-cms-vs-drupal-core</guid>
      <pubDate>Wed, 03 Jun 2026 06:00:00 GMT</pubDate>
      <category>Drupal</category>
      <description>The Drupal CMS announced by the Drupal Association has caused confusion — is it a separate product? Is old Drupal going away? No and no. In late 2024 the Drupal Association introduced a new installation profile called Drupal CMS. This has raised questions — is it a new product, does it replace Drupal, do you have to choose between them? The short answer: Drupal CMS is the same Drupal, pre-configured so that getting started is faster. What is Drupal CMS Drupal CMS is a Drupal installation profile — meaning it is a curated set of modules, configuration and default values that are already set up at the point of installation. Drupal CMS includes out of the box: A modern visual content editor (Experience Builder) Pre-configured content types, taxonomy and media management A simplified…</description>
    </item>
    <item>
      <title>Drupal hosting requirements — what to expect from a server</title>
      <link>https://webpro.company/blog/drupal-hosting-requirements</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-hosting-requirements</guid>
      <pubDate>Tue, 02 Jun 2026 06:00:00 GMT</pubDate>
      <category>Maintenance</category>
      <category>Drupal</category>
      <description>Wrong hosting does not take a Drupal site down — but it makes updates harder, performance worse and maintenance more expensive. Here is what to check. Drupal runs in many server environments, but not all environments work equally well. A simple site may run on minimal hosting, but as the platform grows — more modules, integrations, content — limitations from the wrong hosting start to show. PHP version Drupal 11 requires PHP 8.3 or newer. Drupal 10 supports PHP 8.1–8.3. Check which PHP version the hosting provider offers and whether it can be changed when needed. Some cheaper packages stay on older PHP versions — which means Drupal cannot be updated in the future without switching hosting providers. Minimum requirement: PHP 8.3 (for Drupal 11) Memory limits Drupal needs sufficient PHP…</description>
    </item>
    <item>
      <title>Drupal multisite — one platform, multiple websites</title>
      <link>https://webpro.company/blog/drupal-multisite</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-multisite</guid>
      <pubDate>Mon, 01 Jun 2026 06:00:00 GMT</pubDate>
      <category>Development</category>
      <category>Drupal</category>
      <description>When an organisation runs multiple websites — different brands, regions or products — that does not necessarily mean multiple separate platforms. Drupal is one of the few CMS platforms that supports multisite configuration natively in core. This means a single Drupal installation can serve multiple websites with a shared codebase, shared modules and a shared update process — but with separate content, users and configuration per site. When multisite makes sense Works well when: The organisation runs multiple structurally similar sites — regional offices, subsidiaries or separate brands The sites share functional requirements — common modules, shared design logic, shared integrations You want security updates and Drupal version upgrades to happen for all sites at once, not separately…</description>
    </item>
    <item>
      <title>Drupal scanner: a public pre-check before maintenance or upgrades</title>
      <link>https://webpro.company/blog/drupal-scanner-public-precheck</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-scanner-public-precheck</guid>
      <pubDate>Sun, 24 May 2026 06:00:00 GMT</pubDate>
      <category>Drupal</category>
      <category>Audit</category>
      <category>Security</category>
      <description>The real state of a Drupal website is best checked with access to code, logs, configuration and the database. A public scanner still helps reveal visible warning signs quickly. The WebPro Drupal scanner is a simple public pre-check. You enter a website address, start the scan and get a first view based on information visible from the outside. It does not log in, change the site or require credentials. The result is not an official audit and it does not prove that a site is safe. A lower result means only that public data did not show an obvious high-risk signal. If you do not know when the site was last updated, it should be checked properly. What it checks The scanner looks for signals that are often visible without logging in: public Drupal and PHP traces; Drupal and PHP support…</description>
    </item>
    <item>
      <title>Schema.org structured data — a practical guide for Drupal</title>
      <link>https://webpro.company/blog/structured-data-schema-org</link>
      <guid isPermaLink="true">https://webpro.company/blog/structured-data-schema-org</guid>
      <pubDate>Tue, 19 May 2026 06:00:00 GMT</pubDate>
      <category>Drupal</category>
      <description>Structured data is a machine-readable layer added to a page — it changes nothing visible to the user, but tells search engines and AI systems precisely what they are looking at. Search engines read HTML, but HTML does not always say enough. Text may describe a product, service, article, person or event — but the HTML structure alone may not make this clear. Structured data solves this problem. What structured data is Structured data is additional information added to a page in a machine-readable format — typically as JSON-LD inside a block. It is not visible to the user but is readable by search engines and AI agents. Schema.org is a collection of schemas jointly supported by Google, Bing and Yahoo. Common types: — organisation details, contact information, location; — a news article…</description>
    </item>
    <item>
      <title>Why we automate Drupal work as much as possible</title>
      <link>https://webpro.company/blog/git-composer-and-automated-drupal-workflow</link>
      <guid isPermaLink="true">https://webpro.company/blog/git-composer-and-automated-drupal-workflow</guid>
      <pubDate>Tue, 12 May 2026 06:00:00 GMT</pubDate>
      <category>Drupal</category>
      <category>Development</category>
      <category>Testing</category>
      <description>Good Drupal work is not only about writing code. It is also about how a change moves from a developer machine to a test environment and then to the public website. Drupal projects can easily drift into a risky pattern: small fixes are made directly on the server, files are moved manually and nobody remembers exactly what changed or when. That may feel fast at first, but it becomes dangerous when the website is business-critical, includes an online store, uses integrations or has more than one developer. That is why WebPro tries to make as much work as possible automated and repeatable. This does not remove people from the process. The opposite is true: people stay responsible, while repeated steps are written down and can be checked. Git gives the project memory Git is not only a…</description>
    </item>
    <item>
      <title>Automated tests do not need to start big</title>
      <link>https://webpro.company/blog/automated-tests-for-drupal</link>
      <guid isPermaLink="true">https://webpro.company/blog/automated-tests-for-drupal</guid>
      <pubDate>Sat, 09 May 2026 06:00:00 GMT</pubDate>
      <category>Testing</category>
      <category>Drupal</category>
      <description>Testing does not have to cover the whole system from day one. A small set that checks the most important workflows often gives the highest value. When is the right moment to start Testing does not need to wait until the system is large. The best time is when: an update or change broke something in production and nobody noticed immediately; developers are afraid of updates because they do not know what might break; a Drupal version upgrade is coming and you want confidence that core workflows still work. A useful first test set the homepage and key content pages open; the contact form or request path works; mobile view does not create horizontal scrolling; important external links are not broken; a critical admin or client workflow can be completed. These five tests can fit in a single…</description>
    </item>
    <item>
      <title>Drupal go-live checklist</title>
      <link>https://webpro.company/blog/drupal-go-live-checklist</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-go-live-checklist</guid>
      <pubDate>Fri, 08 May 2026 06:00:00 GMT</pubDate>
      <category>Development</category>
      <category>Drupal</category>
      <description>A new or updated Drupal site goes live more smoothly when the final day is not driven by memory. Go-live starts before launch day A Drupal go-live is not only pointing a domain or uploading code. By that point, the team should know exactly what is being released, how the result will be checked and how to roll back if needed. A good checklist keeps attention on the things that are often missed during the final rush. Before going live Before the public change, at least these points should be ready: a fresh backup of database, files and code; a known rollback plan; tested forms; checked administrator permissions; correct email settings; reviewed redirects from old URLs; checked titles, meta descriptions and sharing images; sitemap and robots.txt; a cache clearing plan. If the site is…</description>
    </item>
    <item>
      <title>Core Web Vitals in Drupal — common problems and how to fix them</title>
      <link>https://webpro.company/blog/core-web-vitals-in-drupal</link>
      <guid isPermaLink="true">https://webpro.company/blog/core-web-vitals-in-drupal</guid>
      <pubDate>Wed, 06 May 2026 06:00:00 GMT</pubDate>
      <category>Drupal</category>
      <category>Performance</category>
      <description>Google measures three performance metrics — time to load the largest element, layout stability and response time — and uses them in search ranking. Drupal sites have specific causes and solutions for each. Core Web Vitals are three performance metrics established by Google, measured using real user data. They are not only a technical benchmark — they affect search ranking. The three metrics LCP — Largest Contentful Paint measures the time until the largest visible element appears on screen (typically an image or heading). The target is under 2.5 seconds. CLS — Cumulative Layout Shift measures layout instability — how much elements on the page shift during loading. An example: the user is about to click a button, but an advertisement loads first and pushes the button down. The target is…</description>
    </item>
    <item>
      <title>How AI helps plan a Drupal migration</title>
      <link>https://webpro.company/blog/ai-in-drupal-migration-planning</link>
      <guid isPermaLink="true">https://webpro.company/blog/ai-in-drupal-migration-planning</guid>
      <pubDate>Tue, 05 May 2026 06:00:00 GMT</pubDate>
      <category>AI</category>
      <category>Migration</category>
      <category>Drupal</category>
      <description>Drupal migration includes a lot of repeated analysis: modules, fields, custom code, logs and test scenarios. AI can help when it is used with guidance. Where AI helps AI tools, including OpenAI, can help process a large amount of information faster. They do not replace code access or developer judgement, but they help create the first structure. AI can help with: summarising custom code patterns; finding risks in a module list; drafting test scenarios; grouping migration tasks; preparing documentation drafts. Where AI should not be trusted alone AI does not automatically know which workflow is business-critical or which data loss is unacceptable. It can also suggest outdated Drupal APIs or overly generic solutions. WebPro uses AI as an assistant in AI-assisted Drupal work, but final…</description>
    </item>
    <item>
      <title>Drupal 11 migration: plan before code</title>
      <link>https://webpro.company/blog/drupal-11-migration</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-11-migration</guid>
      <pubDate>Sat, 02 May 2026 06:00:00 GMT</pubDate>
      <category>Drupal</category>
      <category>Migration</category>
      <description>The first task in a Drupal migration is usually not writing code. The first task is understanding what exists and what the business depends on. What to assess first which modules are critical and whether they have an upgrade path; which content types, fields and views are actually used; which API connections or manual workflows depend on older logic; which design or accessibility issues should be fixed at the same time; which automated tests must exist before the move. Good migration reduces surprises When risks are mapped first, the work can be split into smaller steps. This makes scope easier to estimate, keeps the public website stable and avoids turning the migration into uncontrolled rebuilding. The WebPro Drupal scanner gives a first view of the site&apos;s current state based on…</description>
    </item>
    <item>
      <title>Multilingual Drupal website — how it works</title>
      <link>https://webpro.company/blog/multilingual-drupal-website</link>
      <guid isPermaLink="true">https://webpro.company/blog/multilingual-drupal-website</guid>
      <pubDate>Wed, 29 Apr 2026 06:00:00 GMT</pubDate>
      <category>Drupal</category>
      <description>A multilingual website is not simply translated content. It is a separate content strategy, a separate URL structure, separate SEO logic and a separate editorial workflow. Drupal supports all of these at once. Many organisations start with a single-language site and add languages later. Drupal is well designed for this — multilingual support is built in, not added as an afterthought. But the fact that the platform supports multilingualism does not mean it is simple — it means it can be done properly. Four layers of multilingualism in Drupal Drupal distinguishes four layers that can be translated: Content translation Each content item — a page, news article, product — can have different text in different languages. Different language versions of the same item are linked: when one…</description>
    </item>
    <item>
      <title>Maintenance contract or one-off fix for a Drupal site</title>
      <link>https://webpro.company/blog/maintenance-contract-or-one-off-fix</link>
      <guid isPermaLink="true">https://webpro.company/blog/maintenance-contract-or-one-off-fix</guid>
      <pubDate>Tue, 21 Apr 2026 06:00:00 GMT</pubDate>
      <category>Maintenance</category>
      <category>Drupal</category>
      <description>Not every website issue needs a maintenance contract. At the same time, some Drupal sites carry business-critical risk if support is only occasional. When one-off work is enough A one-off fix fits when the problem is clear, limited and does not depend on the wider technical state. Examples include a small form defect, content change or isolated styling fix. Regular maintenance makes sense when: the site supports sales or a public service; many contrib modules are used; Drupal or PHP needs regular updates; there are several editors and permission levels; changes need staging and a release plan. Maintenance means responsibility Drupal security updates do not always arrive at a convenient time. If responsibility is not agreed, updates are often postponed. WebPro Drupal maintenance fits…</description>
    </item>
    <item>
      <title>Drupal security updates — why they cannot be postponed</title>
      <link>https://webpro.company/blog/how-drupal-security-updates-work</link>
      <guid isPermaLink="true">https://webpro.company/blog/how-drupal-security-updates-work</guid>
      <pubDate>Sat, 28 Mar 2026 06:00:00 GMT</pubDate>
      <category>Maintenance</category>
      <category>Security</category>
      <category>Drupal</category>
      <description>Drupal has one of the more mature security processes among open-source CMS platforms. But applying a security update is not simple — it is technical work that requires planning. Many website owners assume that &quot;updating&quot; means pressing a button. In Drupal projects, that is not how it works — and for good reason. Understanding how security updates work helps explain why regular maintenance is technical work, not an automated process. The Drupal Security Team Drupal has a dedicated volunteer security team responsible for evaluating vulnerabilities and publishing security advisories. The process works as follows: Someone reports a vulnerability privately to the Security Team. The team assesses severity and coordinates a fix with the module maintainer. On a scheduled date, the fix and the…</description>
    </item>
    <item>
      <title>Drupal roles, permissions and editorial workflow</title>
      <link>https://webpro.company/blog/drupal-roles-permissions-and-editorial-workflow</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-roles-permissions-and-editorial-workflow</guid>
      <pubDate>Tue, 24 Mar 2026 06:00:00 GMT</pubDate>
      <category>Security</category>
      <category>Drupal</category>
      <description>Drupal allows very detailed role and permission management. That is exactly why permissions should be reviewed regularly instead of leaving years of exceptions in place. Common problems Drupal user and permission management fits complex organisations, but poor configuration can grant too much access or make editing difficult. Check: whether former employees still have access; whether editor roles see only the tools they need; whether administrator permissions are used too broadly; whether the publishing workflow is documented; whether forms and files are properly restricted. Why this belongs in maintenance A permissions audit should not wait for a security incident. It is worth doing with a larger update, a new editorial workflow or a provider change. WebPro reviews roles and…</description>
    </item>
    <item>
      <title>Drupal vs WordPress — when to use which</title>
      <link>https://webpro.company/blog/drupal-vs-wordpress</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-vs-wordpress</guid>
      <pubDate>Sat, 21 Mar 2026 06:00:00 GMT</pubDate>
      <category>Drupal</category>
      <description>Drupal and WordPress are both widely used, but they have different strengths. The choice depends on site complexity, security requirements, content structure and available development resources. The &quot;Drupal or WordPress&quot; question is not a technical debate — it is an analysis of project requirements. Both are mature platforms with large communities. The question is which platform&apos;s strengths align better with a specific project&apos;s needs. WordPress: simplicity and speed WordPress covers simpler projects well, where the main requirement is publishing content and maintaining a web presence. WordPress suits projects where: the site is primarily a blog, portfolio or informational page; content structure is simple (articles, pages, categories); the team has no technical developers and…</description>
    </item>
    <item>
      <title>When Drupal needs refactoring, not only an update</title>
      <link>https://webpro.company/blog/when-drupal-needs-refactoring</link>
      <guid isPermaLink="true">https://webpro.company/blog/when-drupal-needs-refactoring</guid>
      <pubDate>Tue, 17 Mar 2026 06:00:00 GMT</pubDate>
      <category>Development</category>
      <category>Drupal</category>
      <description>A Drupal upgrade improves the platform&apos;s technical state, but it does not automatically fix a poorly designed workflow, data model or custom code. Signs that an update is not enough Updating Drupal is necessary, but sometimes refactoring must happen before or alongside it. Warning signs include: every small change breaks something unexpected; custom modules mix business logic with presentation logic; content types duplicate each other; editors rely on workarounds; testing depends only on manual clicking. Refactoring must have a reason Refactoring is not making code prettier for developer preference. It must reduce risk, simplify maintenance or make future changes cheaper. WebPro usually assesses this during audit and testing. If the problem is clearly in custom code or the data model,…</description>
    </item>
    <item>
      <title>What happens when a Drupal site is not updated</title>
      <link>https://webpro.company/blog/what-happens-when-drupal-is-not-updated</link>
      <guid isPermaLink="true">https://webpro.company/blog/what-happens-when-drupal-is-not-updated</guid>
      <pubDate>Sat, 14 Mar 2026 06:00:00 GMT</pubDate>
      <category>Maintenance</category>
      <category>Security</category>
      <category>Drupal</category>
      <description>Nothing happens to an unmaintained Drupal site — until something does. Accumulating known vulnerabilities, ageing dependencies and rising remediation costs are real consequences, not theoretical risks. An unmaintained site often runs for years with no visible problems. This creates a false sense of security: if everything works, why update? In reality, every unpatched month adds risk that is invisible until it materialises. Security vulnerabilities accumulate Drupal publishes security patches regularly — roughly once a month. Each patch resolves specific known vulnerabilities. When a patch is not applied, the vulnerability stays open. What makes this especially critical is that security flaws are disclosed after the patch is released. This means attackers know exactly which versions…</description>
    </item>
    <item>
      <title>Drupal cache, images and Core Web Vitals</title>
      <link>https://webpro.company/blog/drupal-cache-images-and-core-web-vitals</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-cache-images-and-core-web-vitals</guid>
      <pubDate>Tue, 10 Mar 2026 06:00:00 GMT</pubDate>
      <category>Performance</category>
      <category>Drupal</category>
      <description>A Drupal site can be slow for several reasons. Core Web Vitals helps separate loading, responsiveness and visual stability problems. Where problems appear Core Web Vitals measures user-visible experience. Drupal sites often repeat the same causes: images are too large, caching is incomplete, JavaScript blocks rendering or components shift while loading. Check: whether image styles produce correctly sized files; whether lazy loading is used correctly; whether cache headers and Drupal cache are configured; whether third-party scripts slow down the front page; whether font and image dimensions are known in advance. Why a plugin is not enough A performance module can help, but the wrong configuration can create new defects. Measure first, then change. WebPro connects performance fixes with…</description>
    </item>
    <item>
      <title>Drupal migration, upgrade or maintenance — how to choose</title>
      <link>https://webpro.company/blog/drupal-migration-upgrade-or-maintenance</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-migration-upgrade-or-maintenance</guid>
      <pubDate>Sat, 07 Mar 2026 06:00:00 GMT</pubDate>
      <category>Drupal</category>
      <category>Migration</category>
      <category>Maintenance</category>
      <description>Many Drupal site owners know something needs to be done — but not exactly what. Maintenance, upgrade and migration solve different problems and cost differently. Three main situations come up in the lifecycle of a Drupal site, each requiring a different kind of technical response. Choosing the wrong service does not fix the problem — it delays it. Maintenance Maintenance suits a site running on Drupal 9, 10 or 11 that is fundamentally healthy but needs ongoing technical attention. Maintenance covers: applying security updates to Drupal core and modules; keeping PHP, server and dependencies current; managing performance, backups and certificates; fixing small bugs and making content changes; monitoring and responding to issues. Maintenance is not a one-time job — it is an ongoing…</description>
    </item>
    <item>
      <title>Custom module audit before Drupal migration</title>
      <link>https://webpro.company/blog/custom-module-audit-before-drupal-migration</link>
      <guid isPermaLink="true">https://webpro.company/blog/custom-module-audit-before-drupal-migration</guid>
      <pubDate>Tue, 03 Mar 2026 06:00:00 GMT</pubDate>
      <category>Audit</category>
      <category>Migration</category>
      <category>Drupal</category>
      <description>Drupal core has a documented upgrade path. The real project risk often lives in custom modules that have become critical to the business over the years. What to look for in custom code Drupal update documentation describes the general path, but custom modules must be reviewed project by project. An audit should check: whether the module uses deprecated APIs; which hooks and services are critical; whether the data model is documented; whether the module depends on an old contrib module; whether the feature can be replaced by standard Drupal functionality. How this helps estimation When the state of custom code is known, migration becomes a set of decisions: what to port, what to rewrite and what is no longer needed. This reduces the chance that developers discover major risk in the…</description>
    </item>
    <item>
      <title>Composer in a Drupal project: why it matters</title>
      <link>https://webpro.company/blog/composer-in-a-drupal-project</link>
      <guid isPermaLink="true">https://webpro.company/blog/composer-in-a-drupal-project</guid>
      <pubDate>Tue, 24 Feb 2026 06:00:00 GMT</pubDate>
      <category>Drupal</category>
      <description>If modules are copied manually to the server, the Drupal update process is no longer easy to track. Composer solves that problem. What Composer provides Composer describes which packages and versions the project uses. This makes the same result repeatable on a developer machine, in staging and on the server. In a Drupal project, Composer helps: manage core and module versions; see which packages depend on others; run updates repeatedly in staging; avoid manual fixes on the server; keep Git history cleaner and understandable. Why the client should care The client does not need to use Composer personally, but they should know that the project is managed with it. Without it, every update becomes more manual and less controlled. WebPro uses Composer in Drupal maintenance, upgrades and…</description>
    </item>
    <item>
      <title>How to check if a Drupal module is risky</title>
      <link>https://webpro.company/blog/how-to-check-if-a-drupal-module-is-abandoned-or-risky</link>
      <guid isPermaLink="true">https://webpro.company/blog/how-to-check-if-a-drupal-module-is-abandoned-or-risky</guid>
      <pubDate>Tue, 17 Feb 2026 06:00:00 GMT</pubDate>
      <category>Security</category>
      <category>Drupal</category>
      <category>Audit</category>
      <description>A Drupal module can solve a problem quickly, but the wrong module can later make updates, security patching and migration difficult. What to check before installation A Drupal module page usually shows maintainers, releases, the issue queue and security coverage. Drupal.org module documentation gives background, but the decision depends on the project. Check: when the last stable release was published; whether the module supports your Drupal version; whether the issue queue shows active maintenance; whether the module is covered by Drupal security advisories; how much custom code the module adds to your project. When to choose another route If a module has no maintainer or the upgrade path is unclear, a cheap solution can become expensive later. Sometimes it is better to use another…</description>
    </item>
    <item>
      <title>PHP version and Drupal hosting</title>
      <link>https://webpro.company/blog/php-version-and-drupal-hosting</link>
      <guid isPermaLink="true">https://webpro.company/blog/php-version-and-drupal-hosting</guid>
      <pubDate>Fri, 06 Feb 2026 06:00:00 GMT</pubDate>
      <category>Maintenance</category>
      <category>Drupal</category>
      <category>Security</category>
      <description>A website may appear to work while the server already runs an outdated PHP version. That quiet risk should be visible before major upgrades. Drupal depends on PHP Drupal is written in PHP. This means Drupal security and reliability also depend on the PHP version running on the server. The official PHP site lists supported PHP versions. If the server uses a version that no longer receives security fixes, updating Drupal modules is not enough. The site may still work. The risk is that old PHP blocks future upgrades and may leave security issues without fixes. What to check in hosting At the start of Drupal maintenance, hosting should be checked together with Drupal itself. The important questions are simple: which PHP version is used; whether the server allows a newer PHP version;…</description>
    </item>
    <item>
      <title>Drupal audit checklist before development</title>
      <link>https://webpro.company/blog/drupal-audit-checklist-before-development</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-audit-checklist-before-development</guid>
      <pubDate>Tue, 27 Jan 2026 06:00:00 GMT</pubDate>
      <category>Audit</category>
      <category>Drupal</category>
      <description>A Drupal audit is most useful before a major decision: changing providers, planning migration, preparing procurement or building new functionality on an old system. What to check A useful audit is more than looking at the front page. A Drupal site must be reviewed from technical, editorial and business perspectives. The Drupal update documentation gives a baseline, but the real state appears in code and configuration. The checklist should include: Drupal core and module versions; security update and PHP version status; custom modules, theme and integrations; content types, fields, views and unused configuration; forms, permissions, logs and backups; automated tests or a manual release test plan. When to order an audit An audit is especially important when someone gives a price without…</description>
    </item>
    <item>
      <title>How to choose a Drupal maintenance partner</title>
      <link>https://webpro.company/blog/how-to-choose-a-drupal-maintenance-partner</link>
      <guid isPermaLink="true">https://webpro.company/blog/how-to-choose-a-drupal-maintenance-partner</guid>
      <pubDate>Tue, 20 Jan 2026 06:00:00 GMT</pubDate>
      <category>Maintenance</category>
      <category>Drupal</category>
      <description>Drupal maintenance is not just having a developer available in an emergency. It is recurring work that keeps the platform secure, tested and maintainable. What to ask before signing A Drupal maintenance provider should understand both Drupal security updates and the client&apos;s business process. The question is not only whether someone can write code. Ask: how updates are tested in a staging environment; whether the project uses Git and Composer; how backups are made before larger changes; which tests run before release; who is responsible if an update breaks an existing workflow. Maintenance is a process A one-off fix can be enough for a small bug. A long-lived Drupal site needs regular review because modules, PHP versions, browsers and security expectations keep changing. WebPro Drupal…</description>
    </item>
    <item>
      <title>How much does a Drupal upgrade cost</title>
      <link>https://webpro.company/blog/drupal-upgrade-cost</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-upgrade-cost</guid>
      <pubDate>Tue, 13 Jan 2026 06:00:00 GMT</pubDate>
      <category>Migration</category>
      <category>Drupal</category>
      <description>The same Drupal version upgrade can be a small maintenance task on one site and a full migration on another. The difference comes from content, modules and business logic. What affects the price Updating Drupal depends on how much of the site follows standard Drupal patterns and how much is custom-built. The version number alone is not enough for estimating the work. Typical cost drivers are: contrib module status and compatibility; custom modules and custom themes; the number of content types, fields and views; external APIs, payments, CRM or ERP integrations; test environment, automated tests and release planning. Why a cheap quote can become expensive If risks are not assessed, they appear in the middle of the project. The upgrade then becomes a chain of urgent fixes and the final…</description>
    </item>
    <item>
      <title>Drupal 10 end of life and Drupal 11 readiness</title>
      <link>https://webpro.company/blog/drupal-10-end-of-life-and-drupal-11-readiness</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-10-end-of-life-and-drupal-11-readiness</guid>
      <pubDate>Fri, 09 Jan 2026 06:00:00 GMT</pubDate>
      <category>Migration</category>
      <category>Drupal</category>
      <description>A Drupal 10 site does not break overnight. The risk appears when the upgrade plan is left too late and dependencies are not ready. Why this already matters Drupal.org publishes the official Drupal core release schedule. According to that schedule, Drupal 10 reaches end of life on December 9, 2026. This does not mean every Drupal 10 site must be rebuilt immediately. It means site owners should know whether their site is ready for Drupal 11 before the deadline becomes close. A weak plan is to wait until support has ended. A better plan is to check: which Drupal 10 minor version is running; whether PHP and the database match Drupal 11 requirements; whether contributed modules support Drupal 11; whether custom code uses deprecated APIs; whether the upgrade can be tested without touching…</description>
    </item>
    <item>
      <title>Drupal 7 in 2026: what to do with an old site</title>
      <link>https://webpro.company/blog/drupal-7-in-2026-what-to-do</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-7-in-2026-what-to-do</guid>
      <pubDate>Tue, 06 Jan 2026 06:00:00 GMT</pubDate>
      <category>Migration</category>
      <category>Drupal</category>
      <category>Security</category>
      <description>A Drupal 7 website can still look fine in 2026, but official security support has ended and every new change is becoming harder to control. Why this is no longer a normal update Drupal 7&apos;s official lifecycle has ended. That means an old site does not only need module updates. It needs a decision: continue with known risk, buy temporary support or move to a newer platform. Module updates have stopped. If a new security vulnerability is found in a Drupal 7 module, no automatic fix will arrive — someone must patch it manually or accept the risk. What the real risks are Most Drupal 7 sites are still running without any visible problem. The risk does not appear immediately — it grows over time: Security vulnerabilities — newly found weaknesses in modules are no longer patched automatically.…</description>
    </item>
    <item>
      <title>Drupal performance optimization — practical steps</title>
      <link>https://webpro.company/blog/drupal-performance-optimization</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-performance-optimization</guid>
      <pubDate>Sat, 15 Nov 2025 06:00:00 GMT</pubDate>
      <category>Performance</category>
      <category>Drupal</category>
      <description>Drupal is fast when configured correctly. Most performance problems are solvable without changing servers. A slow website costs money. Every second of loading time reduces conversions, damages SEO and frustrates users. Drupal itself is not slow — but a misconfigured Drupal installation can be very slow. Layer 1: Drupal&apos;s built-in cache Drupal includes a multi-layered caching mechanism. The first step when diagnosing a slow site is to check whether caching is actually working. Internal Page Cache — stores page HTML for anonymous users. If disabled, every visit regenerates the page from scratch. Dynamic Page Cache — stores page fragments that do not depend on the user. Works for logged-in users too. BigPipe — delivers the page skeleton immediately and fills in personalised sections…</description>
    </item>
    <item>
      <title>Drupal Commerce vs WooCommerce — which fits your online store?</title>
      <link>https://webpro.company/blog/drupal-commerce-vs-woocommerce</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-commerce-vs-woocommerce</guid>
      <pubDate>Wed, 22 Oct 2025 06:00:00 GMT</pubDate>
      <category>E-commerce</category>
      <category>Drupal</category>
      <description>Both platforms sell — the question is how complex your store needs to be and what systems it needs to connect with. Platform choice affects years of development options, maintenance costs and growth potential. WooCommerce and Drupal Commerce are both open-source — but with different strengths and weaknesses. WooCommerce in brief WooCommerce is a WordPress plugin. The store is built on WordPress, with WooCommerce adding e-commerce functionality. Strengths: Fast to get started — a store can be running in hours Large plugin ecosystem Affordable themes and ready-made solutions Simple to manage for non-technical users Weaknesses: Complex business logic requires many plugins, which cause conflicts Performance suffers with large catalogues Custom workflows and roles are hard to build…</description>
    </item>
    <item>
      <title>Drupal Search API — search that actually works</title>
      <link>https://webpro.company/blog/drupal-search-api</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-search-api</guid>
      <pubDate>Thu, 18 Sep 2025 06:00:00 GMT</pubDate>
      <category>Development</category>
      <category>Drupal</category>
      <description>Search is often the most-used feature of a site — and the most often done poorly. Here is how to set it up properly in Drupal. Drupal Core includes a basic search function built on MySQL full-text search. This works for a few hundred pages. But when a site has thousands of content items, multilingual content, complex filters and autocomplete suggestions — a different solution is needed. Search API module Search API is Drupal&apos;s de facto standard for advanced search. It decouples the search index from the database and allows using external search engines. Search API provides: Indexing — define which content types and fields are indexed Server abstraction — the same configuration works with Solr, Elasticsearch or database search Views integration — search results displayed via Drupal…</description>
    </item>
    <item>
      <title>Drupal Paragraphs module — flexible content builder</title>
      <link>https://webpro.company/blog/paragraphs-module-drupal</link>
      <guid isPermaLink="true">https://webpro.company/blog/paragraphs-module-drupal</guid>
      <pubDate>Thu, 14 Aug 2025 06:00:00 GMT</pubDate>
      <category>Development</category>
      <category>Drupal</category>
      <description>Paragraphs makes content structured and editor-friendly — but requires thoughtful component design upfront. Paragraphs is one of Drupal&apos;s most widely used contributed modules. It enables building page content as components: a text block, image + text, video block, CTA button, accordion, table — each as a separate component that editors can reorder and configure. Why Paragraphs instead of a plain text editor? A plain long text field (WYSIWYG) is flexible but problematic: Design depends on what the editor puts in the WYSIWYG Styles diverge across different editors Layout can break unpredictably on mobile Content is hard to restructure later Paragraphs solves this with structured components: each component is a separate entity with defined fields. Editors cannot accidentally apply the…</description>
    </item>
    <item>
      <title>Why Drupal suits the public sector</title>
      <link>https://webpro.company/blog/drupal-for-public-sector</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-for-public-sector</guid>
      <pubDate>Thu, 10 Jul 2025 06:00:00 GMT</pubDate>
      <category>Drupal</category>
      <category>WCAG</category>
      <category>GDPR</category>
      <description>Government and education websites have specific requirements: WCAG accessibility, data protection, long-term support and open source. Drupal meets all of them. Public sector websites are not simply marketing pages. They must be accessible to all users regardless of disability, operate for years without platform replacement, comply with data protection requirements, and be developable through competitive procurement — which means open source. Why Drupal, not other CMS platforms Open source with no licence costs. Drupal is distributed under the GNU GPL licence — government and public sector institutions pay no licence fees. The platform code is auditable, which matters in security assessment contexts. WCAG accessibility. Drupal supports WCAG 2.1 AA in Core and in most widely used themes.…</description>
    </item>
    <item>
      <title>How to evaluate whether your Drupal partner is doing good work</title>
      <link>https://webpro.company/blog/evaluating-drupal-development-partner</link>
      <guid isPermaLink="true">https://webpro.company/blog/evaluating-drupal-development-partner</guid>
      <pubDate>Thu, 08 May 2025 06:00:00 GMT</pubDate>
      <category>Audit</category>
      <category>Drupal</category>
      <description>Good Drupal development shows up when something goes wrong — or doesn&apos;t. Here is what to ask and what to look for before you reach that point. Clients of web projects are often in a position where they are paying for work they cannot evaluate themselves. Drupal development is a technical field — how do you know whether your partner is doing good work? Signs of good work Regular security updates without a special request. A good Drupal partner handles security updates as an automated process, not only when the client asks. Ask: &quot;When were security updates last applied? How does that process work?&quot; A test environment before production. Every change should go through a test environment before reaching the live site. If the partner applies changes directly to production, that is a risk.…</description>
    </item>
    <item>
      <title>Drupal AI modules — what they actually do</title>
      <link>https://webpro.company/blog/drupal-ai-modules</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-ai-modules</guid>
      <pubDate>Thu, 13 Mar 2025 06:00:00 GMT</pubDate>
      <category>AI</category>
      <category>Drupal</category>
      <description>Drupal has a growing ecosystem of AI modules — from content generation to translation, search and moderation. Here is an overview of the most relevant ones. AI integration has entered the Drupal ecosystem in several forms. Unlike general &quot;AI-powered website&quot; promises, Drupal AI modules are concrete tools for concrete problems. AI module (drupal.org/project/ai) The AI module is a central interface between different AI providers. It defines a common API through which other modules can communicate with OpenAI, Anthropic Claude, Azure OpenAI, Google Gemini and others — without each module needing to handle each provider directly. This is architecturally important: module developers can build against one AI interface, and the site administrator chooses the provider in configuration. Content…</description>
    </item>
    <item>
      <title>Drupal security in practice — what actually happens when you skip updates</title>
      <link>https://webpro.company/blog/drupal-security-in-practice</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-security-in-practice</guid>
      <pubDate>Thu, 06 Feb 2025 06:00:00 GMT</pubDate>
      <category>Security</category>
      <category>Drupal</category>
      <category>Maintenance</category>
      <description>Drupal security updates feel like tedious routine — until the day your site is compromised. Here is the real picture of what happens and how to protect yourself. What attackers do with Drupal sites A compromised Drupal site does not necessarily &quot;break&quot; — an attacker&apos;s goal is often not to destroy the site. The goals are: Malware distribution — hidden code is added to the site that loads malware onto visitors&apos; computers. The site works normally, the owner notices nothing — but Google notices and adds the site to its blacklist. SEO spam — hidden pages are added advertising pharmaceuticals, gambling or other illegal content. Google indexes these pages under the site&apos;s domain. Result: the site&apos;s SEO reputation is damaged. Botnet member — the compromised server is added to a botnet used to…</description>
    </item>
    <item>
      <title>Drupal security incident plan — what to do when your site is compromised</title>
      <link>https://webpro.company/blog/drupal-security-incident-plan</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-security-incident-plan</guid>
      <pubDate>Thu, 16 Jan 2025 06:00:00 GMT</pubDate>
      <category>Security</category>
      <category>Drupal</category>
      <category>Maintenance</category>
      <description>During a security incident there is no time to start planning. Here is a step-by-step guide that every Drupal site owner should prepare in advance. Why the plan must exist before the incident When a site is compromised, you are stressed, clients are calling and every minute counts. That is not the moment to start figuring out what to do. A security incident plan is a document that answers questions before they are asked. The plan does not have to be long. It has to be clear and accessible — ideally not stored on the server being attacked. Signs of a security incident Before responding, you need to recognise that an incident has occurred: Google flags the site as &quot;this site may be harmful&quot; Hosting sends a notification about suspicious activity Unknown pages or redirects appear on the…</description>
    </item>
    <item>
      <title>Drupal backup restore test — why &quot;backup exists&quot; is not enough</title>
      <link>https://webpro.company/blog/drupal-backup-restore-test</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-backup-restore-test</guid>
      <pubDate>Thu, 02 Jan 2025 06:00:00 GMT</pubDate>
      <category>Security</category>
      <category>Drupal</category>
      <category>Maintenance</category>
      <description>A backup that has never been restored is an untested hypothesis. Here is how to make sure your Drupal backup actually works. A backup is a promise, not a guarantee Nearly everyone has a backup. Hosting providers take nightly snapshots, some use scripts, others rely on modules like Backup and Migrate. But the question is not whether a backup is being made — the question is whether it works. A backup that has never been restored is an untested hypothesis. A restore test is simple: take a backup and restore it. See whether the result is a usable site. What a backup must contain A complete Drupal backup consists of two parts: Database — all Drupal content, configuration, users. Without the database there is no site. Files — the directory. This is where images, documents and uploaded files…</description>
    </item>
    <item>
      <title>Drupal Layout Builder vs Paragraphs — when to use which</title>
      <link>https://webpro.company/blog/drupal-layout-builder-vs-paragraphs</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-layout-builder-vs-paragraphs</guid>
      <pubDate>Tue, 10 Dec 2024 06:00:00 GMT</pubDate>
      <category>Development</category>
      <category>Drupal</category>
      <description>Two common approaches to flexible page building in Drupal. Here is what sets them apart and when to use which. Why this question comes up Most Drupal projects need flexible page building at some point — editors need to add different blocks, sections, text and images without calling a developer every time. The two most common solutions are Paragraphs (a contributed module) and Layout Builder (a Drupal core feature since 8.5). Both work, but in different ways. Paragraphs — what it is Paragraphs is a module that adds a list field to content types where different types of &quot;paragraphs&quot; can live — text block, image block, quote, video block, CTA, etc. Editors build a page by adding paragraphs in sequence. Each paragraph is a separate entity with its own fields. Strengths: Simple for editors…</description>
    </item>
    <item>
      <title>Drupal Views — what it is and when it falls short</title>
      <link>https://webpro.company/blog/drupal-views-when-it-falls-short</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-views-when-it-falls-short</guid>
      <pubDate>Mon, 18 Nov 2024 06:00:00 GMT</pubDate>
      <category>Development</category>
      <category>Drupal</category>
      <description>Views is at the heart of Drupal — almost every listing, search result and archive is powered by Views. Here is what it is and where it falls short. What Drupal Views is Views is a Drupal core module that lets you query the database through a visual interface — without writing SQL. You choose which content types to show, which fields to include, which filters to apply, how to sort, and whether to paginate. Practically every &quot;listing&quot; in Drupal is a View: News listing on the homepage Blog post archive User list in the admin interface Search results Related articles at the end of a post Views is one of Drupal&apos;s biggest strengths — it dramatically reduces the amount of code that needs to be written. What Views does well Simple filtering — show only published content of a certain type,…</description>
    </item>
    <item>
      <title>Drupal Migrate API — how to bring content from another system</title>
      <link>https://webpro.company/blog/drupal-migrate-api</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-migrate-api</guid>
      <pubDate>Thu, 24 Oct 2024 06:00:00 GMT</pubDate>
      <category>Migration</category>
      <category>Drupal</category>
      <category>Development</category>
      <description>Content migration is part of every significant Drupal project. Migrate API is the right tool for the job — here is how it works and what to plan for. What Migrate API is Drupal Migrate API is a core framework for importing content from different sources in a structured way. It has three parts: Source — where data comes from (old Drupal database, CSV, JSON, XML, REST API, Excel file, etc.). Process — how data is transformed (renaming fields, converting values, filtering, resolving references). Destination — where data goes (Drupal node, taxonomy term, media entity, user, etc.). Common migration scenarios Drupal 7 → Drupal 11 The most common migration. Drupal provides official migration modules (, ) that understand Drupal 7&apos;s data structure. These migrate automatically: Content types and…</description>
    </item>
    <item>
      <title>Drupal configuration management — why config sync matters</title>
      <link>https://webpro.company/blog/drupal-configuration-management</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-configuration-management</guid>
      <pubDate>Thu, 05 Sep 2024 06:00:00 GMT</pubDate>
      <category>Development</category>
      <category>Drupal</category>
      <description>Drupal configuration — content types, views, fields, roles — lives in the database. Config sync moves it to git. Here is why that changes everything. The problem without config sync A classic scenario: a developer makes changes in the development environment — adds a field, modifies a view, creates a new content type. Now this needs to go to production. Without config sync the options are bad: Make the changes manually in production (double work, error-prone) Hope you remember exactly what you changed Export the database from development and import it to production (which wipes production content) What config sync is Since Drupal 8, configuration can be exported from the database to YAML files. These files can be committed to git and synchronised between environments. The result: all…</description>
    </item>
    <item>
      <title>Drupal custom module development — when it makes sense and what it costs</title>
      <link>https://webpro.company/blog/drupal-custom-module-development-cost</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-custom-module-development-cost</guid>
      <pubDate>Wed, 14 Aug 2024 06:00:00 GMT</pubDate>
      <category>Development</category>
      <category>Drupal</category>
      <category>Custom development</category>
      <description>Drupal has thousands of contributed modules — but sometimes none of them cover the exact need. Here is when a custom module is the right choice and what it means. When a custom module is the right choice Drupal.org has over 50,000 modules. Before commissioning custom development it is always worth checking: Is there an existing module that does this? Can an existing module be configured to cover the need? Can the module&apos;s behaviour be extended through hooks or plugins? If the answer to all three is &quot;no&quot; — a custom module is the right choice. Typical reasons to build a custom module: Integration with a specific external system (ERP, CRM, payment gateway) Business logic unique to the organisation Performance-critical functionality that a general module does not optimise enough You need…</description>
    </item>
    <item>
      <title>How long does a Drupal project take — realistic timelines</title>
      <link>https://webpro.company/blog/drupal-project-timeline</link>
      <guid isPermaLink="true">https://webpro.company/blog/drupal-project-timeline</guid>
      <pubDate>Mon, 22 Jul 2024 06:00:00 GMT</pubDate>
      <category>Drupal</category>
      <category>Development</category>
      <description>The Drupal project timeline is one of the most asked and most underestimated topics. Here are realistic estimates and what actually drives the schedule. Why timelines slip Before the numbers — why Drupal projects (and IT projects in general) take longer than planned: Content arrives late — the client promises to send content &quot;quickly&quot; but it takes weeks. Without content you cannot finish design; without design you cannot finish development. Decisions are delayed — &quot;should the logo go here or there&quot; can halt development for days if the decision-maker is unavailable. Scope creep — new features are added during the project. Every &quot;small thing&quot; adds days. Testing is underestimated — &quot;testing will take a week&quot; is rarely true. A complex project needs several weeks of testing. Realistic…</description>
    </item>
    <item>
      <title>Fixed price vs hourly rate — which suits a Drupal project</title>
      <link>https://webpro.company/blog/fixed-price-vs-hourly-drupal</link>
      <guid isPermaLink="true">https://webpro.company/blog/fixed-price-vs-hourly-drupal</guid>
      <pubDate>Wed, 15 May 2024 06:00:00 GMT</pubDate>
      <category>Drupal</category>
      <category>Development</category>
      <description>&quot;How much will it cost?&quot; — the answer depends on how the contract is structured. Fixed price and hourly rate are both reasonable, but in different situations. Fixed price The client and developer agree: &quot;this functionality, at this price, by this deadline.&quot; When it works Scope is clearly defined — a detailed brief, design is ready, requirements are written down Risk of change is low — the project is simple and of a familiar type Client has a hard budget limit that cannot be exceeded Hidden costs of fixed price The developer carries the risk — if the work takes longer, they lose. To cover this risk, a risk premium is added to the quote — typically 20–40%. You pay this whether the project runs over or not. Additionally: if scope is not precisely defined, disputes arise about what is…</description>
    </item>
    <item>
      <title>How Drupal projects stall — and how to avoid it</title>
      <link>https://webpro.company/blog/why-drupal-projects-stall</link>
      <guid isPermaLink="true">https://webpro.company/blog/why-drupal-projects-stall</guid>
      <pubDate>Wed, 10 Apr 2024 06:00:00 GMT</pubDate>
      <category>Drupal</category>
      <category>Development</category>
      <description>A Drupal project is not just stalled when the code does not work. It is stalled when invoices keep growing, deadlines keep slipping, and nobody knows what happens next. Reason 1: The brief is vague &quot;We want a modern Drupal site with everything we need&quot; is not a brief. It is a wish. The developer starts, does their best guess, the client sees the result and says &quot;that&apos;s not what we had in mind.&quot; Both sides are frustrated and neither is strictly at fault. Solution: A written functional brief before development begins. At minimum: which pages are needed, which features, who the users are, what integrations are required. Reason 2: Decisions are delayed The developer is waiting for the client: &quot;should this button be red or blue, and should the form send email to HR or management?&quot; The…</description>
    </item>
    <item>
      <title>Which CMS platforms Estonian businesses use — and why Drupal stands out</title>
      <link>https://webpro.company/blog/cms-landscape-estonia</link>
      <guid isPermaLink="true">https://webpro.company/blog/cms-landscape-estonia</guid>
      <pubDate>Tue, 21 Nov 2023 06:00:00 GMT</pubDate>
      <category>Drupal</category>
      <description>Choosing a CMS is a long-term decision. Here is an overview of the Estonian web market and when Drupal is the right choice compared to cheaper alternatives. CMS platforms globally and in Estonia Globally WordPress dominates — roughly 43% of all websites use WordPress (W3Techs 2024). Drupal holds around 1.5% market share, but that number is misleading — Drupal is disproportionately represented among large, complex platforms. In Estonia the picture is similar: smaller business sites tend to be on WordPress, while larger organisations&apos; platforms are often on Drupal or custom solutions. Who uses what in Estonia WordPress: Small businesses, blogs, smaller online shops (WooCommerce), local service providers. WordPress is fast to launch, inexpensive to start, and has a large pool of…</description>
    </item>
  </channel>
</rss>
