Available in Ghent

WordPress Developer in Ghent

Professional WordPress services in Ghent - your business deserves the best digital outcomes

WordPress Developer → Ghent

We support the WordPress Community in Ghent

We are not just a remote agency. We are an active part of the ecosystem. We believe in Open Source and contributing back to the community that powers over 40% of the web (W3Techs).

    WordPress & WooCommerce Developer in Ghent

    01. Local SEO Performance

    In Ghent's competitive market, site speed is your strongest SEO asset. Our Astro + Headless WP stack delivers performance that leaves competitors behind.

    02. Enterprise-Grade Security

    For businesses in Ghent serving Local SMB and Enterprise, data security is paramount. Headless architecture virtually eliminates standard WordPress attack vectors.

    A corporate site in Ghent sits alongside a biotech spin-off landing from iGent, a port logistics partner portal at North Sea Port, or a corporate service publishing a quarterly report from Ghent Digital Hub. That is not a reason for WordPress to pretend it is a clinical trial booking platform or a university ERP. It is a reason for the theme, Gutenberg blocks, CPT and plugins to be written the way a Flemish compliance team, a UGent grant editor and a legal team reading Belgian GDPR and APD (Autorité de protection des données) / GBA (Gegevensbeschermingsautoriteit) guidance expect, not only the way a Lighthouse score reads on a Friday afternoon.

    WPPoland delivers this WordPress work through a senior Polish team for businesses in Ghent and the wider Flanders region. The scope is WordPress development: block theme or classic theme, custom plugins, Gutenberg, CPT, ACF or native blocks, REST integrations and code review on Git. WooCommerce stores, maintenance retainers and contact are separate topics, with links at the end.

    #WordPress development in Ghent

    Ghent is not Brussels and should not read like Brussels in copy. Belgium’s capital has a different calendar, client profile and vendor ecosystem. Ghent is Flanders’ second-largest city, home to Universiteit Gent (UGent), a port node on the Ghent-Terneuzen canal, and Ghent Digital Hub, which connects biotech, SaaS and e-commerce across the agglomeration from Sint-Amandsberg to Zwijnaarde. WordPress in this setup often powers a product landing, technical documentation, an investor zone or a B2B partner portal. A theme that cannot survive a report publication or a UGent partnership announcement at peak traffic produces an operational incident, not a minor ticket after the weekend.

    iGent and the biotech clusters around Zwijnaarde are among Europe’s most recognised life-sciences ecosystems. Companies there build SaaS products, B2B platforms and institutional sites with compliance and auditability requirements. North Sea Port and B2B logistics bring a different profile: long sales cycles, CRM lead forms, technical catalogues and requirements that APD/GBA teams read, not only Lighthouse output. WordPress Meetup Ghent meets regularly in the Flemish ecosystem. That signals a local community that knows WordPress Coding Standards, debates Gutenberg and sees the difference between a block theme and a page builder dumping shortcodes into content.

    A brief from a client in Ghent often sounds like: “we have Elementor or Divi, editorial is afraid of migration, and the CTO wants Gutenberg and Git.” That is a content-model and delivery-process problem, not a marketplace template problem. A typical project that reaches senior developers in Ghent does not sound like “make a nice site.” It sounds like: inherited page-builder themes, a biotech spin-off publishing product updates in short windows, a contact form collecting personal data under Belgian GDPR, and a new service-line page built by copying last year’s page and manually swapping version numbers. That is technical debt that surfaces in July before Gentse Feesten, not in an SEO audit.

    #Block theme, classic theme and custom plugin

    A new build in Ghent starts with a decision that costs months if it is wrong: whether presentation lives in a block theme with theme.json, in classic PHP templates, and what goes into a plugin. That decision is written down before the first commit.

    #theme.json, patterns and the theme boundary

    A block theme holds tokens: palette, typography scale, spacing, content widths. For a biotech spin-off from iGent that means a restrained corporate layout, a readable typeface without ornament, and components that do not break on long product names or regulatory reference numbers. For a port logistics firm it means a B2B-friendly layout, WCAG 2.2 AA contrast and components that work on slower mobile connections in the field. Block patterns describe repeatable layouts: hero with product material, office grid (Ghent is not Antwerp, Antwerp is not Leuven), attributed quote block, publication card with date, footer with a privacy policy link aligned with Belgian GDPR and a KBO/BCE number.

    Full site editing (FSE) makes sense when the editorial team genuinely needs control over header and footer. In practice many biotech firms in Ghent do not want that: the header is a brand and compliance element, not a playground. The block theme stays, but template parts (header, footer) are locked and editorial works inside patterns and custom blocks. That is a compromise, not a half measure.

    Every custom block gets block.json, a category, an icon and attributes with a schema. Where content must reach search engines and RSS, rendering is server-side. React in the editor serves InspectorControls and preview, not a SPA front pretending to be WordPress. The handbook at developer.wordpress.org is the API contract source, not a training slide deck.

    #When a classic PHP theme stays

    Inherited installations in Ghent often run five to seven years old: child theme on a commercial skeleton, ACF wired into page.php, shortcodes in content, jQuery from the pre-block era, a separate page copy for every seasonal campaign. Rewriting that to FSE “because it is 2026” costs more than fixing template hierarchy, pulling logic into a plugin and adding Gutenberg only where editorial actually builds new landings.

    A classic theme stays when:

    • conditional logic lives in templates (different menu for investors, retail customers, B2B partners) and moving it to theme.json simplifies nothing;
    • the editorial team publishes hundreds of pages in the classic editor and FSE training would be a bigger risk than debt;
    • the child theme is thin and the real problem is plugins and autoload, not the template engine.

    Even then new pieces ship as blocks, not as more shortcodes. A shortcode in 2019 content waits for migration. New code does not add more.

    #Function in plugin, appearance in theme

    The boundary is simple and recorded in the runbook. The theme shows. The plugin knows. Product CPT, CRM queue, REST endpoint for an intranet, a “regulatory content editor” role without publish_pages on the public site: plugin. Colours, grid, hero pattern: theme. If the service catalogue disappears after a theme change, the architecture was wrong.

    A custom plugin has its own prefix, PSR-4 autoload, a main file with Plugin Name header and semver, and tests where logic matters (publication dates, CRM field mapping, contact form validation). Business logic does not go into the theme’s functions.php, because functions.php dies with the theme, and a company in Ghent changes branding partners more often than it changes the content model.

    Layer comparison at kickoff:

    LayerWhat lives thereExample in Ghent
    Themepresentation, tokens, patternsbiotech product landing, privacy-policy footer
    PluginCPT, roles, REST, integrationsproduct, office location, audit logs
    Gutenbergeditorial without raw HTMLpublication pattern, team block, event card
    Staging and Gitprocess, not a featurebranch, review, freeze before Gentse Feesten

    #Gutenberg, CPT and ACF for biotech and services

    Gutenberg without a content model ends with every subpage as a unique block collage and nobody able to produce a list. In Ghent the lists are concrete: products and services, regulatory publications, team members, office locations (Korenmarkt is not Zwijnaarde, Zwijnaarde is not the port), events, job openings. These are objects, not “another page in the tree.”

    #Custom post types instead of copied landings

    CPTs register with their own capabilities, not mapped onto post. A regulatory content editor should edit a publication card, not delete plugins. CPT archives get a template or query pattern. Single objects get a template that cannot stretch layout beyond the agreed structure. Taxonomies are separate: publication type (report, press release, case study) does not mix with blog tags.

    ACF has a place here, but not as a substitute for blocks. ACF fields on CPTs work for data that is fields, not layout: publication date, document version number, language version, PDF file, “embargo until” flag. A person page or article layout is assembled in Gutenberg. Mixing ACF Flexible Content with full block editor on the same object creates two sources of truth and an editor who does not know where to click.

    Where ACF is unnecessary, block attributes in block.json are enough. A “person with quote” block does not need a field group on every page. It needs attributes and possibly InnerBlocks for the bio. Fewer plugins in the admin means less attack surface and fewer conflicts with consent and cache plugins.

    A seasonal campaign landing copied from last year’s page is debt that surfaces in July before Gentse Feesten. A CPT object with season, date and material fields survives the 2027 campaign without copying the tree. The template reads the object. The editor changes the date, not HTML.

    #Server blocks instead of shortcodes

    A shortcode in content is debt you only see at migration. New code in Ghent ships as a block with server render: semantic markup, attributes in the block comment, filterable output. A publication list block reads the CPT, caches the query in a transient with explicit TTL and invalidation on save_post, not on every request during a campaign spike.

    Block code review checks three things before a branch merges to main: whether the block works with JS disabled on the front preview, whether attributes have types and defaults, and whether it does not load the full editor build on the front. Gutenberg that adds a megabyte of React to a director bio page does not pass review.

    #Belgian GDPR, APD/GBA and forms in the Flemish context

    Belgium applies EU Regulation 2016/679 (GDPR) together with national implementation in the Act of 30 July 2018 on the protection of natural persons with regard to the processing of personal data. The supervisory authority is Gegevensbeschermingsautoriteit (GBA) in Dutch and Autorité de protection des données (APD) in French. For a WordPress site in Ghent that is not an abstract legal paragraph. It is decisions in forms, consent plugins, privacy policy and audit logs.

    What goes into the brief and the code:

    • Forms collecting personal data (B2B enquiries, newsletters, contact forms, job applications, UGent conference sign-ups) get an explicit legal basis, a consent checkbox where consent is required, and field minimisation. Fields you do not need for the form purpose do not exist.
    • Consent plugins (Cookiebot, Complianz, CookieFirst, common in Belgium) are configured so marketing scripts do not load before acceptance. APD/GBA guidance expects informed consent before non-essential cookies. That is a theme and enqueue-order decision, not a maintenance ticket after the first supervisory report.
    • Privacy policy and cookie policy are templates with fields, not blocks an editor can delete from the tree. In Ghent those pages are compliance elements, not marketing footnotes.
    • CRM integrations (HubSpot, Salesforce, Pipedrive) get data-flow documentation: what reaches the external system, how long, who is the controller. Data processing agreements are the client’s decision, but WordPress configuration must allow that decision to be implemented.
    • Audit logs for forms and admin changes help during incidents. If someone asks who changed the contact form settings on Friday before a quarterly report publication, the answer cannot be “we do not know.”

    Under Article 33 GDPR, a personal data breach may need notification to APD/GBA within 72 hours if it is likely to result in a risk to individuals’ rights. That is why the development and maintenance log needs a date of first knowledge, not the date the developer returned from holiday. I do not sell fake GDPR certification. I deliver technical configuration the data controller can describe in documentation and include in a breach notification within 72 hours when procedure requires it.

    #EU hosting and backup jurisdiction

    Personal data under GDPR raises the question: which jurisdiction hosts the server. Combell in Belgium, OVH in France, Hetzner in Germany, AWS in Frankfurt (eu-central-1) are different answers for a compliance officer, but all sit in the EU. Ashburn or Hillsboro is the United States and usually a veto without Standard Contractual Clauses or another transfer basis.

    Whether hosting is physically in Ghent is asked less often than whether it is in the EU. The operational answer is two-part. Jurisdiction: EU, backups do not move overnight to a US bucket without agreement. Latency: origin in Belgium or Frankfurt plus a CDN with TLS termination in the EU is usually enough for users in Flanders and Central Europe.

    For WooCommerce stores with EUR checkout, Bancontact and Mollie integration, see the separate brief on WooCommerce developer in Ghent. This page stays with WordPress development, not checkout.

    #Accessibility: EAA and the private sector in Belgium

    Accessibility in Ghent is not one statute. The European Accessibility Act (directive 2019/882) has applied since 28 June 2025 to listed digital services including e-commerce, and the Belgian public sector has long expected WCAG 2.1 AA (with a path toward WCAG 2.2). Beyond micro-enterprises under 10 staff and 2M EUR turnover it covers the private sector too, and an inaccessible service page for a biotech spin-off or a B2B port portal is reputational and contractual risk, not a nice-to-have.

    What the code work includes:

    • Semantic HTML, correct heading hierarchy, form labels linked to fields through for/id, error messages readable by screen readers.
    • Colour contrast meeting WCAG 2.2 AA, visible focus on all interactive elements, keyboard navigation through menus and modals.
    • Images with meaningful alt attributes, video with captions where material is published on the public site.
    • axe-core scan in CI plus manual keyboard paths on key templates: contact form, main navigation, search.
    • Accessibility statement template with fields for public-sector clients, not a forgotten footer page.

    For biotech firms from iGent, accessibility also has a product dimension: PDF documents with an HTML alternative, data tables with headers, forms fillable by keyboard. WordPress does not replace a lab platform, but the product marketing site must work for every visitor, not only a mouse user on a fast laptop.

    #Integrations that repeat in Ghent

    Lead generation forms and B2B enquiries are the most common integration point for SaaS and biotech firms from Ghent Digital Hub. In practice that means connecting WordPress to CRM, validating fields under Belgian GDPR and rate-limiting public endpoints so a form does not become a spam vector during a report publication hour.

    For logistics firms at North Sea Port the second recurring integration is technical catalogues and partner zones: external system embeds, sync with industry event calendars, public-layer cache so a seasonal campaign does not kill the server. WordPress does not replace a TMS, but the promotional site must survive traffic spikes.

    For scaleups from Ghent Digital Hub the third integration is often product tooling: API documentation, product changelog, status page, Slack or Teams webhook on new version publication. Every integration gets webhook documentation, an error matrix and end-to-end testing on staging before production.

    WooCommerce stores with EUR checkout, Bancontact, Mollie, bpost and sales reporting for finance teams are covered on WooCommerce developer in Ghent. Store theme work, checkout plugins and warehouse integrations share the same technical stack but a different brief than a B2B corporate site.

    #Case: quarterly report before a UGent grant deadline

    A corporate WordPress site in Ghent, a biotech spin-off quarterly report landing, an investor form, content scheduled for Monday 08:00 before a UGent grant committee meeting. In the queue sat a migration of the hero block from a page builder to a custom Gutenberg block plus a cache plugin update, “small, live.”

    On staging, publication at 08:00 served Friday’s draft content. Cause: cache key change after the patch, a theme fragment called get_post without checking future status, CDN held HTML without proper Cache-Control. On production the material would have gone out early, the form would have collected data without an updated GDPR clause, and traffic from a Flemish newsletter would have hit a 404 after a panicked rollback.

    Staging stopped the promotion. Rollback confirmed the cache plugin was innocent when the theme fetched a draft by key without status. The publication checklist (draft, future, form, purge, newsletter URL, KBO number in footer) passed before production. Without staging and a calendar freeze you get a post-mortem and a lawyer conversation about a leak.

    The same shape returns when a recruitment form loses its consent checkbox after a theme update, when a consent plugin is disabled by a cache patch, or when a “small” SEO update overwrites robots. Ghent does not forgive that more quietly because someone nearby will ask about APD/GBA or a VLAIO grant slot.

    #How we work

    Every project in Ghent follows a structured process that minimises risk and keeps delivery visible:

    1. Discovery and audit. Review current site architecture, content structure, analytics and business goals. Document technical debt, identify quick wins and define measurable success criteria before writing the first line of code. Check the Gentse Feesten calendar, product publication dates or grant campaign windows so deployment does not land in a critical window.
    2. Technical specification. From the audit, produce a detailed specification covering architectural decisions, technology choices, timeline, milestones and scope. You approve the plan before development starts.
    3. Development sprints. Work in one-to-two-week iterations with a demo at the end of each sprint. You see progress continuously, give feedback in time and can reprioritise without derailing the project.
    4. Staging review. The complete solution runs on staging identical to production. You test with real content, verify integrations and approve launch. Problems are fixed before go-live.
    5. Launch and handover. Handle DNS changes, SSL configuration, cache warm-up, redirect verification and monitoring setup. After launch I stay on standby for 72 hours for immediate issue resolution.

    #Typical challenges we solve

    Companies in Ghent regularly bring these problems:

    • Page-builder to Gutenberg FSE migrations before a seasonal campaign or product publication: extract content, rebuild layouts as block patterns and train editorial teams without disrupting live traffic or SEO positions during peak weeks
    • Performance problems from plugin overload on biotech and SaaS sites: audit installed plugins, replace heavy dependencies with lightweight custom code, implement caching layers and reduce database queries from hundreds to single digits
    • WordPress scaling for Gentse Feesten and seasonal campaigns: configure Cloudflare full-page caching with form exceptions, optimise database indexes, implement query result caching and run load tests before the season starts
    • Security hardening for sites collecting contact or application data: Content Security Policy headers, disabled XML-RPC, enforced two-factor admin authentication and rate limiting on login endpoints
    • NL/EN/FR multilingual setup: hreflang and WPML/Polylang regression after theme updates, separate URL structures and independent metadata per language version

    #Performance measured, not promised upfront

    Core Web Vitals are a Google ranking factor and a conversion factor on a site collecting B2B leads or seasonal bookings in July. I do not promise a specific percentage improvement before an audit, because the scale of improvement depends on the starting state of that installation. What happens systematically:

    • Asset optimisation. Images processed through the build pipeline into responsive srcsets in WebP and AVIF, CSS purged and inlined for above-the-fold content, JavaScript tree-shaken and loaded with dynamic imports.
    • Caching architecture. Multi-layer caching: browser cache, CDN (Cloudflare), application cache (Redis), database query cache with intelligent invalidation, with separate treatment for dynamic fragments when the site has a contact form or video embed.
    • Network optimisation. HTTP/3 with QUIC, Brotli compression, preconnect and dns-prefetch hints, prioritisation of critical first-view resources.
    • Rendering optimisation. Critical CSS inlining, async stylesheet loading, lazy loading for images and iframes, Intersection Observer-based animation triggers.

    Every performance decision is data-driven. Measure before and after, document impact and include a performance baseline in project documentation so regression after the next plugin update is visible immediately, not after the fact in a seasonal window.

    #Local SEO and digital visibility in Ghent

    A well-built site is valuable only when your target audience in Ghent and wider Flanders can find it. WordPress development projects include foundational SEO architecture from the first wireframe:

    • Technical SEO foundations. Clean URL structures, XML sitemaps, robots.txt configuration, canonical tags and proper heading hierarchy. Schema.org structured data: LocalBusiness, Organization, Product, Service, FAQ and HowTo where they make sense.
    • Local search optimisation. Google Business Profile integration, local schema with your Ghent address, NAP (Name, Address, Phone) consistency and regional landing pages targeting queries across Antwerp, Leuven and Brussels where the business actually serves clients across Belgium.
    • Core Web Vitals as ranking signals. Google uses page experience metrics in ranking. Performance budgets are set at project start and verified against CrUX field data, not only lab measurements.
    • Content architecture. Pillar pages, supporting clusters and internal linking so users reach the right topic quickly and search engines understand the company’s expertise scope.
    • Multilingual SEO. For Flemish firms with NL/EN/FR versions: hreflang tags, separate URL structures and independent metadata per language. Each language version targets its own keyword set rather than being a direct translation.

    SEO is not a post-launch afterthought. It is part of architectural decisions from the first sketch.

    #Questions companies in Ghent ask

    Can you migrate our existing site? Yes. Migrations from any CMS to WordPress, from WordPress to headless architecture (Astro/Next.js) and between hosting providers. Every migration includes URL mapping, 301 redirect implementation and SEO monitoring for 90 days after migration, with Gentse Feesten or grant campaign calendars in mind so migration does not land in a critical window.

    Do you work with companies outside Ghent? Yes. I know the local context (Ghent Digital Hub, UGent, iGent, North Sea Port, Gentse Feesten) but work with clients across Belgium and abroad. Many Ghent firms serve clients in Antwerp, Leuven and Brussels without a separate page for each city.

    How do you handle multilingual sites? Multilingual setup through WPML or Polylang for traditional WordPress, or native i18n routing for headless Astro or Next.js builds. Each language version gets correct hreflang tags, localised URL slugs and independent SEO metadata. NL/EN/FR locale and hreflang configuration for Flemish firms needs a separate architectural decision.

    What does ongoing support include? After build completion the project can move to dedicated WordPress maintenance and support in Ghent: tested updates, backups, security and performance monitoring and priority support with a documented SLA. Details on the maintenance page, not in this development brief.

    How does collaboration with APD/GBA and GDPR work? I document technical steps, logs and timelines. Breach classification and notification to APD/GBA remain with the data controller. I do not sell fake GDPR certification.

    How is working with WPPoland different from a local agency in Ghent? Primarily WordPress experience since 2007, in-house technical capacity on Astro and headless WordPress, and work on clear assumptions: scope, milestones and responsibility are described before deployment. Pricing is individual and depends on scope, not a fixed price list.

    If your company already runs an online store or plans to build one, see WooCommerce developer in Ghent for EUR checkout, Bancontact, Mollie, bpost and Belgian GDPR preparation. If the current site works and needs ongoing care, tested updates and monitoring, see WordPress maintenance and support in Ghent. The full WordPress development scope (themes, plugins, Gutenberg, refactors) is on WordPress developer. To discuss a brief, send a short description of your current situation through the contact form.

    #Start your project in Ghent

    If you want to discuss WordPress development, send a short description of your current situation, business goal and technical constraints. On that basis I review the setup, flag risks and propose a practical action plan.

    If you are planning a new build, Gutenberg migration or refactor of an inherited theme before Gentse Feesten or a UGent spin-off quarterly report publication, start by writing down goals, constraints and the current project state. Pricing is individual and depends on scope.

    Map of Ghent and surrounding area

    We serve clients in Ghent and nearby areas.

    Curated Content:

    This page features specific insights for Ghent.

    A corporate site in Ghent sits alongside a biotech spin-off landing from iGent, a port logistics partner portal at North Sea Port, or a corporate service publishing a quarterly report from Ghent Digital Hub. That is not a reason for WordPress to pretend it is a clinical trial booking platform or a university ERP. It is a reason for the theme, Gutenberg blocks, CPT and plugins to be written the way a Flemish compliance team, a UGent grant editor and a legal team reading Belgian GDPR and APD (Autorité de protection des données) / GBA (Gegevensbeschermingsautoriteit) guidance expect, not only the way a Lighthouse score reads on a Friday afternoon.

    WPPoland delivers this WordPress work through a senior Polish team for businesses in Ghent and the wider Flanders region. The scope is WordPress development: block theme or classic theme, custom plugins, Gutenberg, CPT, ACF or native blocks, REST integrations and code review on Git. WooCommerce stores, maintenance retainers and contact are separate topics, with links at the end.

    #WordPress development in Ghent

    Ghent is not Brussels and should not read like Brussels in copy. Belgium’s capital has a different calendar, client profile and vendor ecosystem. Ghent is Flanders’ second-largest city, home to Universiteit Gent (UGent), a port node on the Ghent-Terneuzen canal, and Ghent Digital Hub, which connects biotech, SaaS and e-commerce across the agglomeration from Sint-Amandsberg to Zwijnaarde. WordPress in this setup often powers a product landing, technical documentation, an investor zone or a B2B partner portal. A theme that cannot survive a report publication or a UGent partnership announcement at peak traffic produces an operational incident, not a minor ticket after the weekend.

    iGent and the biotech clusters around Zwijnaarde are among Europe’s most recognised life-sciences ecosystems. Companies there build SaaS products, B2B platforms and institutional sites with compliance and auditability requirements. North Sea Port and B2B logistics bring a different profile: long sales cycles, CRM lead forms, technical catalogues and requirements that APD/GBA teams read, not only Lighthouse output. WordPress Meetup Ghent meets regularly in the Flemish ecosystem. That signals a local community that knows WordPress Coding Standards, debates Gutenberg and sees the difference between a block theme and a page builder dumping shortcodes into content.

    A brief from a client in Ghent often sounds like: “we have Elementor or Divi, editorial is afraid of migration, and the CTO wants Gutenberg and Git.” That is a content-model and delivery-process problem, not a marketplace template problem. A typical project that reaches senior developers in Ghent does not sound like “make a nice site.” It sounds like: inherited page-builder themes, a biotech spin-off publishing product updates in short windows, a contact form collecting personal data under Belgian GDPR, and a new service-line page built by copying last year’s page and manually swapping version numbers. That is technical debt that surfaces in July before Gentse Feesten, not in an SEO audit.

    #Block theme, classic theme and custom plugin

    A new build in Ghent starts with a decision that costs months if it is wrong: whether presentation lives in a block theme with theme.json, in classic PHP templates, and what goes into a plugin. That decision is written down before the first commit.

    #theme.json, patterns and the theme boundary

    A block theme holds tokens: palette, typography scale, spacing, content widths. For a biotech spin-off from iGent that means a restrained corporate layout, a readable typeface without ornament, and components that do not break on long product names or regulatory reference numbers. For a port logistics firm it means a B2B-friendly layout, WCAG 2.2 AA contrast and components that work on slower mobile connections in the field. Block patterns describe repeatable layouts: hero with product material, office grid (Ghent is not Antwerp, Antwerp is not Leuven), attributed quote block, publication card with date, footer with a privacy policy link aligned with Belgian GDPR and a KBO/BCE number.

    Full site editing (FSE) makes sense when the editorial team genuinely needs control over header and footer. In practice many biotech firms in Ghent do not want that: the header is a brand and compliance element, not a playground. The block theme stays, but template parts (header, footer) are locked and editorial works inside patterns and custom blocks. That is a compromise, not a half measure.

    Every custom block gets block.json, a category, an icon and attributes with a schema. Where content must reach search engines and RSS, rendering is server-side. React in the editor serves InspectorControls and preview, not a SPA front pretending to be WordPress. The handbook at developer.wordpress.org is the API contract source, not a training slide deck.

    #When a classic PHP theme stays

    Inherited installations in Ghent often run five to seven years old: child theme on a commercial skeleton, ACF wired into page.php, shortcodes in content, jQuery from the pre-block era, a separate page copy for every seasonal campaign. Rewriting that to FSE “because it is 2026” costs more than fixing template hierarchy, pulling logic into a plugin and adding Gutenberg only where editorial actually builds new landings.

    A classic theme stays when:

    • conditional logic lives in templates (different menu for investors, retail customers, B2B partners) and moving it to theme.json simplifies nothing;
    • the editorial team publishes hundreds of pages in the classic editor and FSE training would be a bigger risk than debt;
    • the child theme is thin and the real problem is plugins and autoload, not the template engine.

    Even then new pieces ship as blocks, not as more shortcodes. A shortcode in 2019 content waits for migration. New code does not add more.

    #Function in plugin, appearance in theme

    The boundary is simple and recorded in the runbook. The theme shows. The plugin knows. Product CPT, CRM queue, REST endpoint for an intranet, a “regulatory content editor” role without publish_pages on the public site: plugin. Colours, grid, hero pattern: theme. If the service catalogue disappears after a theme change, the architecture was wrong.

    A custom plugin has its own prefix, PSR-4 autoload, a main file with Plugin Name header and semver, and tests where logic matters (publication dates, CRM field mapping, contact form validation). Business logic does not go into the theme’s functions.php, because functions.php dies with the theme, and a company in Ghent changes branding partners more often than it changes the content model.

    Layer comparison at kickoff:

    LayerWhat lives thereExample in Ghent
    Themepresentation, tokens, patternsbiotech product landing, privacy-policy footer
    PluginCPT, roles, REST, integrationsproduct, office location, audit logs
    Gutenbergeditorial without raw HTMLpublication pattern, team block, event card
    Staging and Gitprocess, not a featurebranch, review, freeze before Gentse Feesten

    #Gutenberg, CPT and ACF for biotech and services

    Gutenberg without a content model ends with every subpage as a unique block collage and nobody able to produce a list. In Ghent the lists are concrete: products and services, regulatory publications, team members, office locations (Korenmarkt is not Zwijnaarde, Zwijnaarde is not the port), events, job openings. These are objects, not “another page in the tree.”

    #Custom post types instead of copied landings

    CPTs register with their own capabilities, not mapped onto post. A regulatory content editor should edit a publication card, not delete plugins. CPT archives get a template or query pattern. Single objects get a template that cannot stretch layout beyond the agreed structure. Taxonomies are separate: publication type (report, press release, case study) does not mix with blog tags.

    ACF has a place here, but not as a substitute for blocks. ACF fields on CPTs work for data that is fields, not layout: publication date, document version number, language version, PDF file, “embargo until” flag. A person page or article layout is assembled in Gutenberg. Mixing ACF Flexible Content with full block editor on the same object creates two sources of truth and an editor who does not know where to click.

    Where ACF is unnecessary, block attributes in block.json are enough. A “person with quote” block does not need a field group on every page. It needs attributes and possibly InnerBlocks for the bio. Fewer plugins in the admin means less attack surface and fewer conflicts with consent and cache plugins.

    A seasonal campaign landing copied from last year’s page is debt that surfaces in July before Gentse Feesten. A CPT object with season, date and material fields survives the 2027 campaign without copying the tree. The template reads the object. The editor changes the date, not HTML.

    #Server blocks instead of shortcodes

    A shortcode in content is debt you only see at migration. New code in Ghent ships as a block with server render: semantic markup, attributes in the block comment, filterable output. A publication list block reads the CPT, caches the query in a transient with explicit TTL and invalidation on save_post, not on every request during a campaign spike.

    Block code review checks three things before a branch merges to main: whether the block works with JS disabled on the front preview, whether attributes have types and defaults, and whether it does not load the full editor build on the front. Gutenberg that adds a megabyte of React to a director bio page does not pass review.

    #Belgian GDPR, APD/GBA and forms in the Flemish context

    Belgium applies EU Regulation 2016/679 (GDPR) together with national implementation in the Act of 30 July 2018 on the protection of natural persons with regard to the processing of personal data. The supervisory authority is Gegevensbeschermingsautoriteit (GBA) in Dutch and Autorité de protection des données (APD) in French. For a WordPress site in Ghent that is not an abstract legal paragraph. It is decisions in forms, consent plugins, privacy policy and audit logs.

    What goes into the brief and the code:

    • Forms collecting personal data (B2B enquiries, newsletters, contact forms, job applications, UGent conference sign-ups) get an explicit legal basis, a consent checkbox where consent is required, and field minimisation. Fields you do not need for the form purpose do not exist.
    • Consent plugins (Cookiebot, Complianz, CookieFirst, common in Belgium) are configured so marketing scripts do not load before acceptance. APD/GBA guidance expects informed consent before non-essential cookies. That is a theme and enqueue-order decision, not a maintenance ticket after the first supervisory report.
    • Privacy policy and cookie policy are templates with fields, not blocks an editor can delete from the tree. In Ghent those pages are compliance elements, not marketing footnotes.
    • CRM integrations (HubSpot, Salesforce, Pipedrive) get data-flow documentation: what reaches the external system, how long, who is the controller. Data processing agreements are the client’s decision, but WordPress configuration must allow that decision to be implemented.
    • Audit logs for forms and admin changes help during incidents. If someone asks who changed the contact form settings on Friday before a quarterly report publication, the answer cannot be “we do not know.”

    Under Article 33 GDPR, a personal data breach may need notification to APD/GBA within 72 hours if it is likely to result in a risk to individuals’ rights. That is why the development and maintenance log needs a date of first knowledge, not the date the developer returned from holiday. I do not sell fake GDPR certification. I deliver technical configuration the data controller can describe in documentation and include in a breach notification within 72 hours when procedure requires it.

    #EU hosting and backup jurisdiction

    Personal data under GDPR raises the question: which jurisdiction hosts the server. Combell in Belgium, OVH in France, Hetzner in Germany, AWS in Frankfurt (eu-central-1) are different answers for a compliance officer, but all sit in the EU. Ashburn or Hillsboro is the United States and usually a veto without Standard Contractual Clauses or another transfer basis.

    Whether hosting is physically in Ghent is asked less often than whether it is in the EU. The operational answer is two-part. Jurisdiction: EU, backups do not move overnight to a US bucket without agreement. Latency: origin in Belgium or Frankfurt plus a CDN with TLS termination in the EU is usually enough for users in Flanders and Central Europe.

    For WooCommerce stores with EUR checkout, Bancontact and Mollie integration, see the separate brief on WooCommerce developer in Ghent. This page stays with WordPress development, not checkout.

    #Accessibility: EAA and the private sector in Belgium

    Accessibility in Ghent is not one statute. The European Accessibility Act (directive 2019/882) has applied since 28 June 2025 to listed digital services including e-commerce, and the Belgian public sector has long expected WCAG 2.1 AA (with a path toward WCAG 2.2). Beyond micro-enterprises under 10 staff and 2M EUR turnover it covers the private sector too, and an inaccessible service page for a biotech spin-off or a B2B port portal is reputational and contractual risk, not a nice-to-have.

    What the code work includes:

    • Semantic HTML, correct heading hierarchy, form labels linked to fields through for/id, error messages readable by screen readers.
    • Colour contrast meeting WCAG 2.2 AA, visible focus on all interactive elements, keyboard navigation through menus and modals.
    • Images with meaningful alt attributes, video with captions where material is published on the public site.
    • axe-core scan in CI plus manual keyboard paths on key templates: contact form, main navigation, search.
    • Accessibility statement template with fields for public-sector clients, not a forgotten footer page.

    For biotech firms from iGent, accessibility also has a product dimension: PDF documents with an HTML alternative, data tables with headers, forms fillable by keyboard. WordPress does not replace a lab platform, but the product marketing site must work for every visitor, not only a mouse user on a fast laptop.

    #Integrations that repeat in Ghent

    Lead generation forms and B2B enquiries are the most common integration point for SaaS and biotech firms from Ghent Digital Hub. In practice that means connecting WordPress to CRM, validating fields under Belgian GDPR and rate-limiting public endpoints so a form does not become a spam vector during a report publication hour.

    For logistics firms at North Sea Port the second recurring integration is technical catalogues and partner zones: external system embeds, sync with industry event calendars, public-layer cache so a seasonal campaign does not kill the server. WordPress does not replace a TMS, but the promotional site must survive traffic spikes.

    For scaleups from Ghent Digital Hub the third integration is often product tooling: API documentation, product changelog, status page, Slack or Teams webhook on new version publication. Every integration gets webhook documentation, an error matrix and end-to-end testing on staging before production.

    WooCommerce stores with EUR checkout, Bancontact, Mollie, bpost and sales reporting for finance teams are covered on WooCommerce developer in Ghent. Store theme work, checkout plugins and warehouse integrations share the same technical stack but a different brief than a B2B corporate site.

    #Case: quarterly report before a UGent grant deadline

    A corporate WordPress site in Ghent, a biotech spin-off quarterly report landing, an investor form, content scheduled for Monday 08:00 before a UGent grant committee meeting. In the queue sat a migration of the hero block from a page builder to a custom Gutenberg block plus a cache plugin update, “small, live.”

    On staging, publication at 08:00 served Friday’s draft content. Cause: cache key change after the patch, a theme fragment called get_post without checking future status, CDN held HTML without proper Cache-Control. On production the material would have gone out early, the form would have collected data without an updated GDPR clause, and traffic from a Flemish newsletter would have hit a 404 after a panicked rollback.

    Staging stopped the promotion. Rollback confirmed the cache plugin was innocent when the theme fetched a draft by key without status. The publication checklist (draft, future, form, purge, newsletter URL, KBO number in footer) passed before production. Without staging and a calendar freeze you get a post-mortem and a lawyer conversation about a leak.

    The same shape returns when a recruitment form loses its consent checkbox after a theme update, when a consent plugin is disabled by a cache patch, or when a “small” SEO update overwrites robots. Ghent does not forgive that more quietly because someone nearby will ask about APD/GBA or a VLAIO grant slot.

    #How we work

    Every project in Ghent follows a structured process that minimises risk and keeps delivery visible:

    1. Discovery and audit. Review current site architecture, content structure, analytics and business goals. Document technical debt, identify quick wins and define measurable success criteria before writing the first line of code. Check the Gentse Feesten calendar, product publication dates or grant campaign windows so deployment does not land in a critical window.
    2. Technical specification. From the audit, produce a detailed specification covering architectural decisions, technology choices, timeline, milestones and scope. You approve the plan before development starts.
    3. Development sprints. Work in one-to-two-week iterations with a demo at the end of each sprint. You see progress continuously, give feedback in time and can reprioritise without derailing the project.
    4. Staging review. The complete solution runs on staging identical to production. You test with real content, verify integrations and approve launch. Problems are fixed before go-live.
    5. Launch and handover. Handle DNS changes, SSL configuration, cache warm-up, redirect verification and monitoring setup. After launch I stay on standby for 72 hours for immediate issue resolution.

    #Typical challenges we solve

    Companies in Ghent regularly bring these problems:

    • Page-builder to Gutenberg FSE migrations before a seasonal campaign or product publication: extract content, rebuild layouts as block patterns and train editorial teams without disrupting live traffic or SEO positions during peak weeks
    • Performance problems from plugin overload on biotech and SaaS sites: audit installed plugins, replace heavy dependencies with lightweight custom code, implement caching layers and reduce database queries from hundreds to single digits
    • WordPress scaling for Gentse Feesten and seasonal campaigns: configure Cloudflare full-page caching with form exceptions, optimise database indexes, implement query result caching and run load tests before the season starts
    • Security hardening for sites collecting contact or application data: Content Security Policy headers, disabled XML-RPC, enforced two-factor admin authentication and rate limiting on login endpoints
    • NL/EN/FR multilingual setup: hreflang and WPML/Polylang regression after theme updates, separate URL structures and independent metadata per language version

    #Performance measured, not promised upfront

    Core Web Vitals are a Google ranking factor and a conversion factor on a site collecting B2B leads or seasonal bookings in July. I do not promise a specific percentage improvement before an audit, because the scale of improvement depends on the starting state of that installation. What happens systematically:

    • Asset optimisation. Images processed through the build pipeline into responsive srcsets in WebP and AVIF, CSS purged and inlined for above-the-fold content, JavaScript tree-shaken and loaded with dynamic imports.
    • Caching architecture. Multi-layer caching: browser cache, CDN (Cloudflare), application cache (Redis), database query cache with intelligent invalidation, with separate treatment for dynamic fragments when the site has a contact form or video embed.
    • Network optimisation. HTTP/3 with QUIC, Brotli compression, preconnect and dns-prefetch hints, prioritisation of critical first-view resources.
    • Rendering optimisation. Critical CSS inlining, async stylesheet loading, lazy loading for images and iframes, Intersection Observer-based animation triggers.

    Every performance decision is data-driven. Measure before and after, document impact and include a performance baseline in project documentation so regression after the next plugin update is visible immediately, not after the fact in a seasonal window.

    #Local SEO and digital visibility in Ghent

    A well-built site is valuable only when your target audience in Ghent and wider Flanders can find it. WordPress development projects include foundational SEO architecture from the first wireframe:

    • Technical SEO foundations. Clean URL structures, XML sitemaps, robots.txt configuration, canonical tags and proper heading hierarchy. Schema.org structured data: LocalBusiness, Organization, Product, Service, FAQ and HowTo where they make sense.
    • Local search optimisation. Google Business Profile integration, local schema with your Ghent address, NAP (Name, Address, Phone) consistency and regional landing pages targeting queries across Antwerp, Leuven and Brussels where the business actually serves clients across Belgium.
    • Core Web Vitals as ranking signals. Google uses page experience metrics in ranking. Performance budgets are set at project start and verified against CrUX field data, not only lab measurements.
    • Content architecture. Pillar pages, supporting clusters and internal linking so users reach the right topic quickly and search engines understand the company’s expertise scope.
    • Multilingual SEO. For Flemish firms with NL/EN/FR versions: hreflang tags, separate URL structures and independent metadata per language. Each language version targets its own keyword set rather than being a direct translation.

    SEO is not a post-launch afterthought. It is part of architectural decisions from the first sketch.

    #Questions companies in Ghent ask

    Can you migrate our existing site? Yes. Migrations from any CMS to WordPress, from WordPress to headless architecture (Astro/Next.js) and between hosting providers. Every migration includes URL mapping, 301 redirect implementation and SEO monitoring for 90 days after migration, with Gentse Feesten or grant campaign calendars in mind so migration does not land in a critical window.

    Do you work with companies outside Ghent? Yes. I know the local context (Ghent Digital Hub, UGent, iGent, North Sea Port, Gentse Feesten) but work with clients across Belgium and abroad. Many Ghent firms serve clients in Antwerp, Leuven and Brussels without a separate page for each city.

    How do you handle multilingual sites? Multilingual setup through WPML or Polylang for traditional WordPress, or native i18n routing for headless Astro or Next.js builds. Each language version gets correct hreflang tags, localised URL slugs and independent SEO metadata. NL/EN/FR locale and hreflang configuration for Flemish firms needs a separate architectural decision.

    What does ongoing support include? After build completion the project can move to dedicated WordPress maintenance and support in Ghent: tested updates, backups, security and performance monitoring and priority support with a documented SLA. Details on the maintenance page, not in this development brief.

    How does collaboration with APD/GBA and GDPR work? I document technical steps, logs and timelines. Breach classification and notification to APD/GBA remain with the data controller. I do not sell fake GDPR certification.

    How is working with WPPoland different from a local agency in Ghent? Primarily WordPress experience since 2007, in-house technical capacity on Astro and headless WordPress, and work on clear assumptions: scope, milestones and responsibility are described before deployment. Pricing is individual and depends on scope, not a fixed price list.

    If your company already runs an online store or plans to build one, see WooCommerce developer in Ghent for EUR checkout, Bancontact, Mollie, bpost and Belgian GDPR preparation. If the current site works and needs ongoing care, tested updates and monitoring, see WordPress maintenance and support in Ghent. The full WordPress development scope (themes, plugins, Gutenberg, refactors) is on WordPress developer. To discuss a brief, send a short description of your current situation through the contact form.

    #Start your project in Ghent

    If you want to discuss WordPress development, send a short description of your current situation, business goal and technical constraints. On that basis I review the setup, flag risks and propose a practical action plan.

    If you are planning a new build, Gutenberg migration or refactor of an inherited theme before Gentse Feesten or a UGent spin-off quarterly report publication, start by writing down goals, constraints and the current project state. Pricing is individual and depends on scope.

    Methodology guides (SEO, GEO, compliance)

    How we approach AI citations, WooCommerce B2B modernization, and NIS2-aligned operational resilience on WordPress. These guides apply to every client location.

    See Also in Belgium

    What Makes Ghent Unique

    Local expertise: - Senior WordPress development for businesses in Ghent: custom themes, Gutenberg patterns, CPT, ACF or native block attributes, and custom plugins - Local context: Ghent Digital Hub, UGent, iGent, North Sea Port, Gentse Feesten and the Flemish SaaS ecosystem - WordPress Coding Standards, Belgian GDPR, APD/GBA and WCAG 2.2 AA built into the delivery workflow, without claiming a certification that was never earned Our team understands the Ghent market and tailors solutions to local business needs. Key project decisions are based on real data from the Ghent market, not template assumptions.

    Need this service: WordPress Developer in Ghent?

    Let's discuss how we can bring top-tier performance to your project.

    Schedule free consultation in Ghent

    Latest WordPress Developer articles

    Stay updated with the WordPress Developer community

    Sep 3, 2026

    Google goto: redirects in search results

    Since 26 August 2026, links in Google results go through google.com/goto instead of straight to the page. What this changes in analytics, in rank tracking tools and in WordPress, and what it does not change at all.

    Sep 1, 2026

    Update WP Rocket to 3.23.2.2 before WordPress 7.1

    WP Rocket 3.23.2.1 and earlier fatal on WordPress 7.1: TypeError in Cloudflare.php line 562. GitHub report 6 July, sites down 19 August, fix 3.23.2.2 on 20 August. Update the plugin first.

    Aug 30, 2026

    Googlebot and JSON-LD: a single unescape pass

    Google changed its JSON-LD extraction and now applies only one pass of HTML unescaping. Double-escaped entities are no longer unrolled, so the block stops parsing and the structured data disappears. How to measure your own corpus and how to encode it correctly.

    Aug 29, 2026

    Site reputation abuse policy in the EEA from 30 August 2026

    Google splits site reputation manual actions by searcher location from 30 August 2026. Outside the EEA the demotion still hits the affected portion. Inside the EEA that impact does not apply; the section may rank independently. Why parasite SEO does not return.

    More articles are available on /en/blog/

    FAQ - WordPress Developer Ghent

    Gutenberg and FSE or a classic theme?

    For new builds the default is a block theme with full site editing, since that is where the WordPress editor is going. Classic PHP themes remain when existing template logic is too expensive to port, or when the editorial team works in the classic editor and retraining would be a bigger risk than technical debt. The choice is documented as a written trade-off, not a ideological decision.

    Do you build plugins as well as themes?

    If a feature is functional rather than presentational, it lives in a plugin so it survives a theme switch. Themes describe presentation and editorial structure. Plugins hold integrations, custom post types (product, office location, publication), business logic, REST endpoints and admin tools. The boundary is set during architecture and recorded in the runbook.

    Technologies & Expertise - Ghent

    We work with:

    WordPressGeneral Data Protection RegulationSEOWeb performance