Skip to main content
GrN.dk
Menu
Search
Search
Main navigation
Articles
Cases
Services
Your Digital Project Manager
About Greg Nowak
Image Gallery
Contact
Search
Search
User account menu
Log in
Join my community / free newsletter — sign up here
Breadcrumb
Home
All articles
Every article on GrN.dk, newest first.
ChatGPT Disabled Personal Knowledge Sync. What Broke on Your Team?
Cloudflare’s September Bot Defaults Could Quietly Cut AI Visibility
Does Your AI Chatbot Clearly Identify Itself?
Should publishers add Google’s new Preferred Sources button?
Search Console Can See TikTok Now. Your Reporting Has to Catch Up
Your AI workflow has logs. Can they explain one bad decision?
Security Questionnaires Eat Into Selling Time—Let AI Find the Evidence
Locked out of your Apple developer account? Fix it before October 1
Cloudflare Workflows Now Charges by the Step—Price the Outcome
Google’s AI Search Toggle Is a Publishing Decision, Not an SEO Setting
From Supplier Invoice to Bookkeeping: AI with a Control Checkpoint
Nginx 1.30 Changed the Upstream Defaults—Test Before You Upgrade
OpenAI’s Assistants API Shuts Down in Ten Days. Is Your App Ready?
WordPress 7.1 Forces the Editor Into an iframe—Test Your Custom Blocks
GitHub will stop sending jobs to stale self-hosted runners
Your AI Agent Has Shell Access. What Can It Reach?
Cloudflare Changed DoH JSON. What Else Is Parsing DNS as Text?
Your Website Can Answer Questions Now. Should It?
AI Search Finally Has Reports. Now Connect Visibility to Revenue
The Bot Passed Your CAPTCHA. What Did It Do Next?
WordPress 7.1 Moves Image Work Into the Browser—Test Every Media Hook
Prompt Caches Have Write Costs Now—Audit What Your Workflow Reuses
The AI Crawler in Your Logs May Be Wearing a Borrowed Name
AI Agents Need a Spending Brake, Not Just a Billing Dashboard
Drupal 12 Slipped to December. Drupal 10 Still Runs Out of Road
EU OpenAI Residency Is a Migration Project, Not a Dashboard Toggle
AI Images Need a Chain of Custody, Not Just a Disclosure Label
MCP Just Went Stateless: Audit the Integrations Behind Your AI Tools
SEO Trends for 2026: What Actually Changed Since 2024
INP and Green SEO Share a Backlog: Cut the Work Every Visit Repeats
AI crawler policy now has verbs: separate search, RAG, and training
WordPress Supports Old PHP; Your Production Server Shouldn’t
The AI-built tool your team relies on needs an owner
Your AI model has an expiry date: build the migration lane now
Copilot Has Repo-Level Metrics Now. What Should Teams Measure?
Not Every AI Job Needs an Instant Answer: Batch the Backlog
A stray Set-Cookie can waste your CDN: audit the cache at the edge
Shorter TLS Certificates Expose the Renewals You Haven’t Automated
One Timeout, Two Orders: How to Make AI Actions Safe to Retry
Your AI Visibility Dashboard Needs a Methodology, Not More Charts
AI Admin APIs Are Here. Your Directory Is Still the Source of Truth
OpenAI Presence Is Here. Is Your Workflow Ready for an Agent?
Chatbot Transcripts Quietly Became a Retention and Redaction Problem
Cloudflare Service Keys Stop in September: Find Every Caller
Your AI Workflow Needs an Acceptance Test Before It Meets Customers
The Goats Were Load-Bearing: a fantasy where the bill always comes due
Vegan Power: The Little Game About Eating Fruit, Not Friends
KotobaMon: Shipping a 3D Browser Game With No Build Step and Self-Hosted Voice
WordPress Forced an Emergency Update. Did Every Site Take It?
IndexNow: Wire corrections and deletions into the CMS
The EU’s August AI Deadline Reaches Bots and Synthetic Content
A Voice Agent Is Only Ready When the Human Handoff Works
If Your Key Facts Need JavaScript, AI Search May Miss Them
Search Console Can See Social Posts—Your Reports Need a New Map
WordPress 7.0 Gave Plugins an AI Client. Guardrails Are Still Your Job
Google’s AI Search toggle needs a test plan, not a gut decision
OpenAI Is Retiring Agent Builder: Save the Workflow, Not Just Prompts
Before AI agents start clicking, write a browser policy
When AI writes JSON, one bad field can break the workflow
AI search is eating the click: measure the queries before rewriting pages
AI shopping visibility now depends on boring product-data plumbing
Before a Drupal AI Demo Goes Live, Rehearse the Permissions
Before Your Support Bot Learns the Help Center, Test Whether It Can Forget
Before OpenAI Agents Touch Your CRM, Map the Boring Boundaries
When Cloudflare Workers Become Shadow IT: Build an Integration Register
AI automations need a spend dashboard before the first runaway bill
Before ChatGPT apps touch company data, draw a permissions map
llms.txt Is a CMS Asset, Not an AI Visibility Button
Background AI Tasks Need Queues—not Just Longer API Calls
Agent-ready APIs: audit the contract before MCP rollout
WordPress headless menus need an exposure check before launch
AI crawler permissions now belong in a licensing register
The Riskiest Part of an AI Workflow Pilot Is Often the OAuth Screen
AI disclosure rules belong in your CMS, not a spreadsheet
Before AI images reach clients, audit your media library
ChatGPT Is Becoming Office Software: Put Admin Hygiene First
WordPress Speculative Loading: Test the Cart, Analytics, and Cache Before Prerendering
Model Retirements Are Quietly Breaking AI Integrations
Drupal's June security bundle exposes fragile Composer update habits
Vibe-coded features need a production handoff before launch
Shorter TLS Certificates Make Renewal Monitoring a Server Job
The latest WordPress supply-chain attack was a CDN problem too
Agentic AI: What It Is, How It Works, and When to Use It
PHP 8.2 Is Near End of Life: A Practical Upgrade Plan for CMS Hosts
Cloudflare BYOIP customers need a rollback plan, not just trust
When Google can call the business, your local data stops being cosmetic
Give Your OpenAI and Cloudflare Credentials an Expiry Plan
Apache 2.4.68 Is a Reminder That Old Proxy Rules Need a Real Audit
Bot traffic now exceeds human traffic—and crawler rules are no longer optional
WordPress 7.1's Media Pipeline Needs a Real Plugin and CDN Test Pass
June 2026 WordPress Plugin Exploits Put Inventory to the Test
AI Overviews, Legal Risk, and the Messy Work of Brand Truth
Drupal CMS 2.0: quick starts, harder rebuild choices
Cloudflare Turnstile for Lead Forms: What the Widget Doesn’t Do
OpenAI Evals Bring Acceptance Tests to AI Workflow Releases
WordPress 7.0 AI: Connector Governance Decides Whether It Works
OpenAI's Guardrails and Run State Make Internal Agent Rollouts a Paid Approval-and-Audit Job
AI Research Assistants Need a Source Trail, Not Just Citations
Cloudflare AI Search namespaces make scoping a governance choice
WordPress 7.1 Unicode Emails Put Old Validation Rules on Notice
OpenAI Computer Use: Browser Agents Need Credentials, Not Demos
Bing AI Search Puts Fresh Sitemaps and IndexNow on the Clock
WordPress 7.0's React 19 Upgrade Makes Custom Block QA a Paid Compatibility Job
AI Voice Agents Need More Than a Number and a Realtime Model
OpenAI File Search: Internal Docs Need Governance Before Trust
WordPress.org's 24-Hour Plugin Cooldown Calls for Real Review
AI Shopping Makes Product Data Integrity a Technical Ops Job
Cloudflare AI Gateway Brings LLM Budgets Into the Request Path
Before Your Website AI Bot Goes Live: Prompt-Injection Controls for Chat and Lead Capture
Structured Outputs Make Intake Automation a Schema Design Job
Cache, Background, or Batch? A Practical Map for AI Workloads
ChatGPT Visibility Without Open Access: robots.txt Is Only the Start
ChatGPT Apps with Full MCP Access: Governance Comes First
OpenAI Responses API and the old assistant migration clock
Google’s 2026 AI Search Guidance: SEO Still Counts, Reporting Changes
WooCommerce Checkout Blocks: When to Migrate or Roll Back
Cloudflare Resource Tagging: Small Labels, Real Governance Consequences
WooCommerce Scheduled-Action Backlogs: The Store Operations Risk to Fix First
MariaDB 10.6 EOL: quiet CMS hosting debt needs a real upgrade plan before July 2026
OpenSSH 10 Crypto Changes: Why Old SFTP Integrations Need a Cleanup Plan
Google’s August 18, 2026 Content API Cutoff: Feed Cleanup Before Merchant API Migration
Drupal 10's December 2026 Deadline: Start With the Upgrade Inventory
NGINX 1.30 changed upstream connection reuse: what to check before you upgrade
Cloudflare Zombie API Endpoints: A Practical Cleanup Plan
HubSpot OAuth v1 Is Going Away: A Practical Plan for Older CRM Integrations
Let's Encrypt Profiles Put Renewal Assumptions Under the Microscope
Ubuntu 26.04 LTS Raises the TLS Floor: How to Test Legacy Integrations
Cloudflare’s Enforce DNS-Only Switch: Test Your Origin Before an Incident
Drupal Automatic Updates After the Legacy API Shutdown: What to Fix Now
Apache 2.4.67 Put Legacy Reverse Proxies Back on the Risk List
Cloudflare Tunnel in 2026: Better Visibility, Harder Questions
Cloudflare Cache Response Rules: Safer Header Fixes at the Edge
Cloudflare Service Keys: Audit Old Automation Before September 30
WordPress 6.9.2 and Unsupported Theme Code: A Safer Update Playbook
WordPress Playground Makes Bug Reproduction Faster—Until the Host Matters
Drupal CMS 2.0 Speeds Marketing Site Rebuilds, but It Is Not Autopilot
Cloudflare Access: Lock Down Forgotten Staging Sites and Admin Panels
WordPress 6.8 Password Hashing: The Hidden Risk in Legacy Login Bridges
WooCommerce HPOS: The Migration Behind the Settings Toggle
Search Console’s Hourly Data Changes the Post-Launch SEO Checklist
WordPress Autoloaded Options: What the Site Health Warning Misses
WordPress Security Updates Need an Ops Runbook
WordPress 7.0 Upgrade Planning: What Old Meta Boxes Still Mean
JavaScript-Heavy Service Pages Still Lose Leads: What to Audit in 2026
URL Parameter Sprawl: Where SEO, Caching, and Analytics Collide
Cloudflare Page Rules Debt: How Quiet Configuration Drift Breaks Business Websites
Website Email Deliverability in 2026: A Practical Fix-It Checklist
Speculative Loading Without Surprises: A CMS Operations Checklist
Logistics Optimization in 2026: Fix the Flow Before You Buy More Tech
Why Your Website’s Third-Party Stack Needs a Real Owner
Form Spam Is a Lead-Quality Problem: How to Harden Your Intake Flow
CMS Upgrades in 2026: Choosing PHP for WordPress and Drupal
AI Crawler Control for Business Websites: Protect Content Without Vanishing from Search
Youtube Subtitles in Any Language
h2, h2c, or HTTP/1.1? Practical Choices for Real-World Stacks
Delete Files and Folders Older Than X days
SSH Tips and Tricks
Cloudflare API: Safer DNS Automation for Launches and Migrations
Signing PDF documents
Canon 2010 Printer Tips and Tricks
How to Check Whether a PHP Constant Is Defined (Without Breaking Production)
Bash Tip and Tricks
Ubuntu Logs Journalctl and Dmesg
WordPress Cron: When to Replace WP-Cron with Server Cron
Bash Find and Delete Files Older Than X Days
Nagios HTTPS monitoring: practical check_http and check_curl checks
How to Flush the DNS Cache on Ubuntu—and Verify the Fix
Remove whoopsie-upload
SystemD Notes Tips and Tricks
Skype For Linux Fix High CPU Consumption
Linux Browser Tweaks
Mysqldump Encoding: How to Prevent Broken Characters in Database Exports
KDE contextual menu shortcut (mouse right click wannabe)
Ubuntu Select Touch Device
KDE 5 Plasma Fix After Upgrade
Handling Multibyte Characters And Strings In R Project
PHP Only on the Front Page: Safer Checks for Live Sites
Nagios
Nano Text Editor
HTTRACK and wayback machine
Honda Click 125i DIY Notes
Run process in the background Linux
Wget The Non-Interactive Network Downloader Tips and Tricks
WordPress PageSpeed: What to Fix First for Better Core Web Vitals
SoapUI
R XML2
PDF to Word Conversion
Get Current Working Directory In Any Window Linux Bash
Adjust power management settings for Ryzen Processors
Trello Tips and Tricks
WP-CLI for Faster, Safer WordPress Operations
MySQL Zero-Date Import Errors: A Safer Fix for Legacy Data
OLCPT installation on Windows
Reinstalling and Updating All Current R-Packages To New Version of R
Enable SMART on Old External Seagate SSD Ubuntu 20.10
Cockpit, Monit, ISPConfig, or Landscape: Which Fits Your Ubuntu Servers?
How to Bulk Delete Cloudflare DNS Records Safely—Without Browser Console JavaScript
Scraping and Browser Automation: Choosing the Right Tool for the Job
Drupal Commerce: A Practical Setup and Scoping Guide
Drupal 9: A Practical Upgrade Path for Legacy Sites
Vegan Power Game Privacy Policy
USB headphone detection reintroduced in Ubuntu 20.10
Sending Mail from a Linux Server with Postfix: A Reliable, Relay-First Setup
Tonsil Fix
Drush Symfony PHP Errors in Drupal: A Safe, Practical Fix
Drupal 7 on MySQL 8: Fixing the NO_AUTO_CREATE_USER Error
Tidy Up composer.json with Composer Normalize
Linux Show Final URL Programatically
PHP Front-Page Detection: Safer Checks for Real-World Sites
Strip Metadata
Grub settings and options
Gregs Thai Notes
Boric Acid and Borax Recipe For Preservation
Online Store Links Thailand: Practical Supplier Shortlist
WordPress Admin Lockout: A Safe Recovery Guide
Tesseract Thai Language
CodeIgniter Login and Password Resets: Practical Security for Live Projects
Prestashop Modules And Info
JavaFX
Excel Baht To Text and English Version
TTFB Tips And Tricks
LibreOffice Calc Separate Cells Into Comma Separated Values
Drupal 8: How to Change Existing Content Language Safely
Drupal Taxonomy Hierarchy in Views: Practical Ways to Show Nested Terms
Drupal 8 Taxonomy Terms In Node URLs
Tar Notes
Squirrel SQL With MS SQL
Can’t Publish in WordPress? Fix the Invalid JSON Response Without Guesswork
Recently Installed Packages Ubuntu
Critical CSS for Faster Pages: When It’s Worth the Work
Lenovo G580 Notes
Converting PNG to SVG
Recaptcha Above Send Message Button Webfrom Drupal 8
Certbot notes
VPS Setup Notes
Keyboard Mapping Kubuntu 20.04
Suspend Issue AMD Graphics Driver Kubuntu 20.04
Grub Notes
Kubuntu 20.04 USB Audio Devices Not Found Fix
RSS feed