{"id":2906,"date":"2026-11-08T13:22:52","date_gmt":"2026-11-08T13:22:52","guid":{"rendered":"https:\/\/dygistic.com\/?page_id=2906"},"modified":"2026-11-08T13:22:52","modified_gmt":"2026-11-08T13:22:52","slug":"work","status":"publish","type":"page","link":"https:\/\/dygistic.com\/nl\/work\/","title":{"rendered":"Werk"},"content":{"rendered":"<style data-wp-block-html=\"css\">.dy-seo-page{--slate:#1C2333;--slate-mid:#2E3F5C;--slate-ink:#0F1420;--sky:#4A90B8;--sky-deep:#3B7A9E;--sky-soft:#7AB4D6;--sky-light:#EEF3F8;--off-white:#F5F7FA;--white:#FFFFFF;--rule:rgba(28,35,51,0.08);--rule-strong:rgba(28,35,51,0.14);--ink:#1C2333;--ink-70:rgba(28,35,51,0.72);--ink-55:rgba(28,35,51,0.55);--ink-40:rgba(28,35,51,0.4);font-family:\"Plus Jakarta Sans\",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);line-height:1.6;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);-webkit-font-smoothing:antialiased}.dy-seo-page *,.dy-seo-page *::before,.dy-seo-page *::after{box-sizing:border-box}.dy-seo-page img,.dy-seo-page svg{display:block;max-width:100%}.dy-seo-page a,.entry-content .dy-seo-page a,.ast-single-post .entry-content .dy-seo-page a,.ast-single-post .entry-content .dy-seo-page a:hover{color:inherit;text-decoration:none}.dy-seo-page .wrap{max-width:1200px;margin:0 auto;padding:0 clamp(24px,5vw,72px)}.dy-seo-page .wrap-narrow{max-width:860px}.dy-seo-page .section{padding:clamp(56px,7vw,88px) 0}.dy-seo-page .eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--sky-deep);margin-bottom:18px}.dy-seo-page .eyebrow::before{content:\"\";width:20px;height:1px;background:var(--sky);display:block}.dy-seo-page .title{font-size:clamp(26px,3.6vw,40px);font-weight:700;letter-spacing:-0.025em;line-height:1.1;color:var(--slate);margin-bottom:18px}.dy-seo-page .lead{font-size:17px;font-weight:300;color:var(--ink-70);line-height:1.65;max-width:62ch}.dy-seo-page .bg-off{background:var(--off-white)}.dy-seo-page .btn{display:inline-flex;align-items:center;gap:10px;font-size:14.5px;font-weight:600;letter-spacing:-0.005em;padding:14px 24px;border-radius:10px;cursor:pointer;border:1px solid transparent;transition:transform .15s,background .2s,box-shadow .2s,color .2s}.dy-seo-page .btn-primary{background:var(--sky);color:var(--white)}.dy-seo-page .btn-primary:hover{background:var(--sky-deep);box-shadow:0 10px 28px rgba(74,144,184,.35)}.dy-seo-page .btn-outline{background:transparent;color:var(--white);border-color:rgba(255,255,255,.22)}.dy-seo-page .btn-outline:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.4)}.dy-seo-page .seo-hero{position:relative;background:radial-gradient(1200px 500px at 85% -10%,rgba(74,144,184,.22),transparent 60%),radial-gradient(900px 400px at -10% 110%,rgba(74,144,184,.08),transparent 60%),linear-gradient(180deg,var(--slate-ink),var(--slate));color:var(--white);overflow:hidden}.dy-seo-page .hero-inner{padding:clamp(56px,8vw,88px) 0 clamp(120px,14vw,160px);text-align:center}.dy-seo-page .hero-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:24px;justify-content:center}.dy-seo-page .hero-eyebrow::before{content:\"\";width:20px;height:1px;background:var(--sky);display:block}.dy-seo-page .hero-h1{font-size:clamp(34px,5.4vw,62px);font-weight:800;letter-spacing:-0.035em;line-height:1.04;color:var(--white);max-width:18ch;margin:0 auto}.dy-seo-page .hero-h1 em{font-style:normal;background:linear-gradient(180deg,var(--sky-soft),var(--sky));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.dy-seo-page .hero-sub{margin:22px auto 0;max-width:58ch;font-size:17px;font-weight:300;line-height:1.65;color:rgba(255,255,255,.72)}.dy-seo-page .tool-section{margin-top:clamp(-90px,-10vw,-120px);position:relative;z-index:2;padding-bottom:clamp(40px,6vw,64px)}.dy-seo-page .tool-panel{background:var(--white);border:1px solid var(--rule-strong);border-radius:20px;padding:clamp(18px,3vw,28px);box-shadow:0 30px 80px rgba(15,20,32,.14)}.dy-seo-page .tool-panel .dyt-form{border:0;box-shadow:none;padding:0;background:transparent}.dy-seo-page .tool-panel .dyt-url{background:var(--off-white)}.dy-seo-page .metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px}@media (max-width:860px){.dy-seo-page .metric-grid{grid-template-columns:1fr}}.dy-seo-page .metric-card{padding:26px 24px;background:var(--white);border:1px solid var(--rule);border-radius:14px}.dy-seo-page .mc-abbr{font-size:11px;font-weight:700;letter-spacing:.22em;color:var(--sky);margin-bottom:10px}.dy-seo-page .mc-title{font-size:17px;font-weight:700;color:var(--slate);margin-bottom:8px;letter-spacing:-0.01em}.dy-seo-page .mc-text{font-size:13.5px;color:var(--ink-70);line-height:1.6}.dy-seo-page .mc-good{display:inline-block;margin-top:12px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#1F8F5F;background:#E6F5EE;padding:5px 10px;border-radius:999px}.dy-seo-page .tips{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:32px}@media (max-width:760px){.dy-seo-page .tips{grid-template-columns:1fr}}.dy-seo-page .tip{padding:24px;background:var(--white);border:1px solid var(--rule);border-radius:14px}.dy-seo-page .tip-title{font-size:15px;font-weight:700;color:var(--slate);margin-bottom:8px}.dy-seo-page .tip p{font-size:13.5px;color:var(--ink-70);line-height:1.6;margin:0}.dy-seo-page .tip ul{margin:8px 0 0;padding-left:18px;font-size:13.5px;color:var(--ink-70)}.dy-seo-page .tip li{margin:4px 0}.dy-seo-page .other-tools{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.dy-seo-page .other-tools a{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid var(--rule-strong);border-radius:999px;font-size:13.5px;font-weight:600;color:var(--slate);background:var(--white);transition:border-color .2s,background .2s}.dy-seo-page .other-tools a:hover{border-color:var(--sky);background:var(--sky-light);color:var(--sky-deep)}.dy-seo-page .cta-block{padding:clamp(40px,6vw,64px);border-radius:24px;background:radial-gradient(800px 300px at 90% -20%,rgba(74,144,184,.22),transparent 60%),linear-gradient(135deg,var(--slate-ink),var(--slate));color:var(--white);position:relative;overflow:hidden;display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center}@media (max-width:820px){.dy-seo-page .cta-block{grid-template-columns:1fr;gap:28px}}.dy-seo-page .cta-h{font-size:clamp(26px,3.4vw,38px);font-weight:700;letter-spacing:-0.025em;line-height:1.12;color:var(--white);margin:0 0 14px}.dy-seo-page .cta-p{font-size:16px;color:rgba(255,255,255,.7);line-height:1.65;max-width:44ch;margin:0}.dy-seo-page .cta-right{display:flex;flex-direction:column;align-items:flex-start;gap:20px}.dy-seo-page .cta-detail{font-size:13.5px;color:rgba(255,255,255,.65);line-height:1.85;border-left:2px solid var(--sky);padding-left:14px}.dy-seo-page .case-hero .hero-inner{text-align:left;padding-bottom:clamp(56px,7vw,80px)}.dy-seo-page .case-hero .hero-eyebrow{justify-content:flex-start}.dy-seo-page .case-hero .hero-h1{margin:0;max-width:22ch}.dy-seo-page .case-hero .hero-sub{margin-left:0}.dy-seo-page .case-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.08);border-top:1px solid rgba(255,255,255,.08)}@media (max-width:780px){.dy-seo-page .case-meta{grid-template-columns:repeat(2,1fr)}}.dy-seo-page .cm{padding:22px clamp(20px,3vw,40px);background:var(--slate-ink)}.dy-seo-page .cm-l{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:6px}.dy-seo-page .cm-v{font-size:14.5px;font-weight:600;color:var(--white);line-height:1.4}.dy-seo-page .case-body{display:grid;grid-template-columns:1fr 1.6fr;gap:56px;align-items:start}@media (max-width:900px){.dy-seo-page .case-body{grid-template-columns:1fr;gap:28px}}.dy-seo-page .case-body h2{font-size:clamp(22px,2.6vw,30px);font-weight:700;letter-spacing:-.02em;color:var(--slate);margin:0 0 12px;line-height:1.15}.dy-seo-page .case-body p{font-size:16px;color:var(--ink-70);line-height:1.7;margin:0 0 16px}.dy-seo-page .case-body ul{margin:0 0 16px;padding-left:20px;color:var(--ink-70);font-size:15.5px;line-height:1.65}.dy-seo-page .case-body li{margin:6px 0}.dy-seo-page .case-body code{font-size:13px;background:var(--sky-light);color:var(--sky-deep);padding:2px 6px;border-radius:5px}.dy-seo-page .case-side{position:sticky;top:96px}@media (max-width:900px){.dy-seo-page .case-side{position:static}}.dy-seo-page .ba{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:8px 0 24px}@media (max-width:640px){.dy-seo-page .ba{grid-template-columns:1fr}}.dy-seo-page .ba-card{padding:22px;border-radius:14px;border:1px solid var(--rule);background:var(--white)}.dy-seo-page .ba-card.after{border-color:rgba(74,144,184,.35);background:var(--sky-light)}.dy-seo-page .ba-l{font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-55);margin-bottom:8px}.dy-seo-page .ba-card.after .ba-l{color:var(--sky-deep)}.dy-seo-page .ba-t{font-size:14.5px;color:var(--ink);line-height:1.55}.dy-seo-page .kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 24px}@media (max-width:640px){.dy-seo-page .kpis{grid-template-columns:1fr}}.dy-seo-page .kpi{padding:18px;border-radius:12px;background:var(--white);border:1px solid var(--rule);border-top:3px solid var(--sky)}.dy-seo-page .kpi-n{font-size:28px;font-weight:800;letter-spacing:-.03em;color:var(--slate)}.dy-seo-page .kpi-l{font-size:12.5px;color:var(--ink-70);margin-top:2px}.dy-seo-page .todo{background:#FBF1DF;border:1px dashed #B8771A;color:#7a4e0b;border-radius:10px;padding:12px 14px;font-size:13px;margin:0 0 24px}.dy-seo-page .case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:32px}@media (max-width:900px){.dy-seo-page .case-grid{grid-template-columns:1fr}}.dy-seo-page .case-card{display:flex;flex-direction:column;padding:30px 28px;background:var(--white);border:1px solid var(--rule);border-radius:16px;transition:transform .2s,box-shadow .2s,border-color .2s;color:inherit}.dy-seo-page a.case-card:hover{transform:translateY(-3px);box-shadow:0 24px 60px rgba(15,20,32,.08);border-color:rgba(74,144,184,.3);color:inherit}.dy-seo-page .cc-cat{font-size:11px;font-weight:700;letter-spacing:.22em;color:var(--sky);margin-bottom:12px;text-transform:uppercase}.dy-seo-page .cc-title{font-size:20px;font-weight:700;color:var(--slate);margin-bottom:10px;letter-spacing:-0.01em;line-height:1.2}.dy-seo-page .cc-text{font-size:14px;color:var(--ink-70);line-height:1.6;margin-bottom:18px;flex:1}.dy-seo-page .cc-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.dy-seo-page .cc-tags span{font-size:11.5px;font-weight:600;padding:4px 9px;border-radius:999px;background:var(--off-white);color:var(--ink-70)}.dy-seo-page .cc-arrow{font-size:13px;font-weight:600;color:var(--sky-deep)}.dy-seo-page .cat-head{margin-top:56px}.dy-seo-page .cat-head .title{margin-bottom:8px}.dy-seo-page .case-grid.two{grid-template-columns:repeat(2,1fr)}@media (max-width:900px){.dy-seo-page .case-grid.two{grid-template-columns:1fr}}<\/style>\n<div class=\"dy-seo-page\">\n<section class=\"seo-hero\">\n<div class=\"wrap hero-inner\" style=\"padding-bottom:clamp(56px,8vw,88px)\">\n<div class=\"hero-eyebrow\">Portfolio &middot; Cases &middot; Labs<\/div>\n<h1 class=\"hero-h1\">Selected <em>work<\/em>.<\/h1>\n<p class=\"hero-sub\">Anonymised technical cases and experiments from my own lab. No agency gloss: what the problem was, what I did, and where it stands now.<\/p>\n<\/div>\n<\/section>\n<section class=\"section\">\n<div class=\"wrap\">\n<div class=\"eyebrow\">Technical cases<\/div>\n<h2 class=\"title\">Anonymised problems, real fixes.<\/h2>\n<p class=\"lead\">Client names are only published with written permission, so these cases leave them out. The diagnosis and the implementation are described as they happened, and I only quote numbers I can back up.<\/p>\n<div class=\"case-grid two\"><a class=\"case-card\" href=\"\/nl\/work\/programmatic-seo-job-platform\/\"><div class=\"cc-cat\">Technische case<\/div><div class=\"cc-title\">Programmatic SEO voor een niche-vacatureplatform<\/div><p class=\"cc-text\">Job boards that rely on individual vacancies lose every ranking they build the day a job closes. Separating the durable search intent (the role, later the role in a location) from the temporary content (the vacancy) is the whole trick.<\/p><div class=\"cc-tags\"><span>WordPress<\/span><span>Programmatic SEO<\/span><\/div><span class=\"cc-arrow\">Lees de case &rarr;<\/span><\/a><a class=\"case-card\" href=\"\/nl\/work\/apache-nginx-migration-seo\/\"><div class=\"cc-cat\">Technische case<\/div><div class=\"cc-title\">Keeping SEO intact through an Apache to Nginx migration<\/div><p class=\"cc-text\">A server move leaves content and design untouched. But the rules that tell search engines how to crawl a site often live in Apache&#8217;s configuration, and Nginx does not read .htaccess.<\/p><div class=\"cc-tags\"><span>Apache to Nginx<\/span><span>Technische SEO<\/span><\/div><span class=\"cc-arrow\">Lees de case &rarr;<\/span><\/a><a class=\"case-card\" href=\"\/nl\/work\/international-woocommerce-three-languages\/\"><div class=\"cc-cat\">Technische case<\/div><div class=\"cc-title\">E\u00e9n WooCommerce-shop, drie taalmarkten<\/div><p class=\"cc-text\">Running several languages from one installation keeps products, stock and orders in one place. It only works for SEO if every language gets its own clean URLs, its own content and clear signals about which version is meant for whom.<\/p><div class=\"cc-tags\"><span>WordPress<\/span><span>Internationale SEO<\/span><\/div><span class=\"cc-arrow\">Lees de case &rarr;<\/span><\/a><a class=\"case-card\" href=\"\/nl\/work\/prestashop-price-architecture-sql\/\"><div class=\"cc-cat\">Technische case<\/div><div class=\"cc-title\">Fixing a catalogue-wide price problem in PrestaShop with SQL<\/div><p class=\"cc-text\">When a data problem is structural, the fix should be structural too. This webshop showed the right prices on the front end, but the database stored them in a way that made every price change, discount and export error-prone.<\/p><div class=\"cc-tags\"><span>PrestaShop 8<\/span><span>Database analysis<\/span><\/div><span class=\"cc-arrow\">Lees de case &rarr;<\/span><\/a><\/div>\n<div class=\"cat-head\">\n<div class=\"eyebrow\">Dygistic Labs<\/div>\n<h2 class=\"title\">What I build for myself.<\/h2>\n<p class=\"lead\">Automation, tooling and experiments that later end up in client work.<\/p>\n<\/div>\n<div class=\"case-grid\"><a class=\"case-card\" href=\"\/nl\/work\/seo-automation-infrastructure-n8n\/\"><div class=\"cc-cat\">Dygistic Labs<\/div><div class=\"cc-title\">Building my own SEO automation stack with n8n<\/div><p class=\"cc-text\">SEO work is full of repeatable steps: pulling data, checking pages, formatting reports, publishing content. I built a self-hosted automation environment so those steps run without me, and without a per-task SaaS bill.<\/p><div class=\"cc-tags\"><span>VPS<\/span><span>Automation<\/span><\/div><span class=\"cc-arrow\">Lees de case &rarr;<\/span><\/a><a class=\"case-card\" href=\"\/nl\/tools\/\"><div class=\"cc-cat\">Dygistic Labs<\/div><div class=\"cc-title\">Free SEO tools on this site<\/div><p class=\"cc-text\">Core Web Vitals, meta data, broken links and image checks, built as a WordPress plugin with rate limiting, caching and a shared design system.<\/p><div class=\"cc-tags\"><span>WordPress<\/span><span>PHP<\/span><\/div><span class=\"cc-arrow\">Try the tools &rarr;<\/span><\/a><a class=\"case-card\" href=\"\/nl\/glossary\/\"><div class=\"cc-cat\">Dygistic Labs<\/div><div class=\"cc-title\">Glossary with automatic tooltips<\/div><p class=\"cc-text\">A glossary post type whose definitions appear as hover tooltips on the first mention of any term, site-wide, with DefinedTerm schema.<\/p><div class=\"cc-tags\"><span>WordPress<\/span><span>JavaScript<\/span><\/div><span class=\"cc-arrow\">See the glossary &rarr;<\/span><\/a><\/div>\n<\/div>\n<\/section>\n<section class=\"section\" style=\"padding-top:0\">\n<div class=\"wrap\">\n<div class=\"cta-block\">\n<div>\n<h2 class=\"cta-h\">Want a case like this for your site?<\/h2>\n<p class=\"cta-p\">Every engagement starts with a conversation about where it hurts. Bring the problem; I will bring two or three concrete observations to the first call.<\/p>\n<\/div>\n<div class=\"cta-right\">\n<a href=\"\/nl\/contact\/\" class=\"btn btn-primary\">Start a conversation<\/a>\n<div class=\"cta-detail\">One consultant, start to finish.<br>Developer-ready deliverables.<br>NL, BE, DE and UK markets.<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Portfolio &middot; Cases &middot; Labs Selected work. Anonymised technical cases and experiments from my own lab. No agency gloss: what [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-2906","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/dygistic.com\/nl\/wp-json\/wp\/v2\/pages\/2906","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dygistic.com\/nl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dygistic.com\/nl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dygistic.com\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dygistic.com\/nl\/wp-json\/wp\/v2\/comments?post=2906"}],"version-history":[{"count":2,"href":"https:\/\/dygistic.com\/nl\/wp-json\/wp\/v2\/pages\/2906\/revisions"}],"predecessor-version":[{"id":2981,"href":"https:\/\/dygistic.com\/nl\/wp-json\/wp\/v2\/pages\/2906\/revisions\/2981"}],"wp:attachment":[{"href":"https:\/\/dygistic.com\/nl\/wp-json\/wp\/v2\/media?parent=2906"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}