Cookie policy

This policy explains cookies, browser storage, and optional analytics on Tim Harris’s personal website. For questions or privacy requests, email tim@timharris.xyz. See the site’s privacy policy for contact-form information, retention and service providers.

Your choice comes first

Optional analytics connected to these controls is off until you opt in. You can accept, reject, or choose analytics settings without losing access to the site. Use Cookie settings in the footer at any time to change or withdraw your choice. Rejection is as available as acceptance.

Essential storage and security

We store your choice in your browser’s local storage under th_consent, for up to 180 days. It contains a consent version, analytics choice and expiry time, not your name or a visitor identifier. It is not a tracking cookie. If browser storage is unavailable, your choice may last only for the current page. Clearing site data removes it and prompts a new choice. Changes to the configured analytics providers also request fresh consent.

WordPress can set cookies for administrator authentication, login testing and account preferences. Login duration depends on session settings and whether Remember Me is used, typically up to 14 days. These are separate from optional visitor analytics. Cloudflare and hosting security features may use necessary security cookies when protecting the site. No optional analytics cookie is needed to send a contact inquiry.

Optional analytics

When configured and accepted, Cloudflare Web Analytics measures visits and performance. Its beacon does not use analytics cookies, but it sends page and performance information to Cloudflare. It still waits for analytics consent in this site’s integration. Cloudflare’s network delivery and security functions operate separately from this optional beacon. See Cloudflare’s privacy information.

Google Analytics 4 is configured on this site and loads only after analytics consent. Google may process page URLs, device/browser information and interaction data. Google advertising signals and ad personalization are disabled in this integration. The _ga and _ga_* cookies are configured to expire after 180 days; their names include a property identifier. Your GA property’s data-retention settings govern data already sent to Google. See Google’s privacy policy.

Changing your choice

Withdrawing analytics consent stops future consent-managed loads. The page reloads to stop code already running, and this integration removes recognized Google Analytics cookies where the browser permits. Withdrawal cannot retrieve information already sent to a provider or remove third-party storage this site cannot access. You can also clear cookies and site data in your browser and contact us about data requests.

When your browser sends Global Privacy Control or Do Not Track, these controls keep optional analytics disabled. Choices are specific to this browser and site; they do not automatically apply to other devices or linked websites.

Other services and future changes

HubSpot, Drift and advertising tools are not enabled by these consent controls. Links to Intel, Half Full Wine Co., LinkedIn and Medium take you to separate services with their own policies and choices. Installing another plugin, tag or embed requires reviewing its data practices, updating this policy, and connecting it to consent where required. This notice does not automatically authorize future tracking or control independently installed services.

Last updated: November 8, 2026