<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  <url>
    <loc>https://wpsifero.com/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/topics/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/authors/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/about/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/contact/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.4</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/credits/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/legal/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/go-for-backend-services/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/go-for-backend-services/installing-go-and-the-toolchain/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/go-for-backend-services/packages-modules-and-project-layout/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/go-for-backend-services/a-first-program-you-actually-understand/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/go-for-backend-services/structs-methods-and-embedding/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/go-for-backend-services/interfaces-and-who-should-define-them/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/go-for-backend-services/errors-as-values-not-exceptions/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/go-for-backend-services/goroutines-and-the-scheduler/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/go-for-backend-services/channels-select-and-pipelines/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/go-for-backend-services/context-cancellation-and-the-race-detector/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/javascript-and-typescript-from-script-to-application/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/javascript-and-typescript-from-script-to-application/values-types-and-coercion/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/javascript-and-typescript-from-script-to-application/scope-hoisting-and-the-temporal-dead-zone/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/javascript-and-typescript-from-script-to-application/the-event-loop-and-why-order-surprises-you/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/javascript-and-typescript-from-script-to-application/arrays-and-the-methods-that-matter/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/javascript-and-typescript-from-script-to-application/objects-map-and-set/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/javascript-and-typescript-from-script-to-application/destructuring-spread-iterators-and-generators/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/javascript-and-typescript-from-script-to-application/function-forms-and-this/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/javascript-and-typescript-from-script-to-application/closures-and-private-state/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/javascript-and-typescript-from-script-to-application/es-modules-npm-and-dependency-hygiene/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/javascript-and-typescript-from-script-to-application/callbacks-to-promises/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/javascript-and-typescript-from-script-to-application/async-await-and-error-propagation/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/javascript-and-typescript-from-script-to-application/cancellation-timeouts-and-fetch/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/javascript-and-typescript-from-script-to-application/structural-typing-and-narrowing/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/javascript-and-typescript-from-script-to-application/generics-and-utility-types/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/javascript-and-typescript-from-script-to-application/tsconfig-strictness-and-migration/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/javascript-and-typescript-from-script-to-application/the-dom-without-a-framework/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/javascript-and-typescript-from-script-to-application/state-rendering-and-events/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/javascript-and-typescript-from-script-to-application/testing-bundling-and-deploying/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/modern-php-from-syntax-to-services/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/modern-php-from-syntax-to-services/installing-php-and-the-built-in-server/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/modern-php-from-syntax-to-services/the-request-lifecycle-and-where-code-runs/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/modern-php-from-syntax-to-services/composer-autoloading-and-project-layout/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/modern-php-from-syntax-to-services/scalar-types-and-strict-types/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/modern-php-from-syntax-to-services/arrays-strings-and-the-standard-library/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/modern-php-from-syntax-to-services/enums-readonly-and-match/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/modern-php-from-syntax-to-services/signatures-defaults-and-named-arguments/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/modern-php-from-syntax-to-services/interfaces-traits-and-visibility/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/modern-php-from-syntax-to-services/psr-4-autoloading-and-dependency-direction/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/modern-php-from-syntax-to-services/error-levels-and-what-php-reports/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/modern-php-from-syntax-to-services/exceptions-custom-hierarchies-and-finally/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/modern-php-from-syntax-to-services/streams-files-and-closing-resources/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/modern-php-from-syntax-to-services/phpunit-from-zero/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/modern-php-from-syntax-to-services/test-doubles-and-testing-what-matters/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/modern-php-from-syntax-to-services/phpstan-levels-and-ci/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/python-from-first-script-to-service/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/python-from-first-script-to-service/installing-python-and-virtual-environments/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/python-from-first-script-to-service/running-a-file-and-using-the-repl/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/python-from-first-script-to-service/reading-a-traceback-without-panicking/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/python-from-first-script-to-service/numbers-strings-and-why-types-matter/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/python-from-first-script-to-service/lists-tuples-and-dictionaries/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/python-from-first-script-to-service/loops-decisions-and-early-exit/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/python-from-first-script-to-service/defining-functions-and-arguments/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/python-from-first-script-to-service/scope-lifetime-and-mutable-defaults/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/python-from-first-script-to-service/modules-packages-and-project-layout/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/python-from-first-script-to-service/classes-attributes-and-methods/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/python-from-first-script-to-service/dataclasses-and-value-objects/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/python-from-first-script-to-service/exceptions-and-context-managers/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/python-from-first-script-to-service/writing-your-first-pytest-suite/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/python-from-first-script-to-service/test-design-that-catches-real-bugs/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/python-from-first-script-to-service/type-annotations-and-a-checker-in-ci/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/python-from-first-script-to-service/threads-processes-and-the-gil/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/python-from-first-script-to-service/asyncio-and-async-http/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/python-from-first-script-to-service/packaging-a-service-with-pinned-dependencies/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/sql-and-relational-database-design/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/sql-and-relational-database-design/tables-rows-and-keys/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/sql-and-relational-database-design/normalisation-without-dogma/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/sql-and-relational-database-design/constraints-are-the-only-real-validation/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/sql-and-relational-database-design/select-where-and-the-order-of-evaluation/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/sql-and-relational-database-design/joins-and-what-each-one-actually-returns/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/sql-and-relational-database-design/aggregation-grouping-and-window-functions/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/sql-and-relational-database-design/insert-update-delete-and-returning/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/woocommerce-extension-development/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/woocommerce-extension-development/hpos-and-where-order-data-lives-now/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/woocommerce-extension-development/the-crud-layer-and-why-you-must-use-it/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/woocommerce-extension-development/the-request-path-from-cart-to-order/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/woocommerce-extension-development/product-types-and-the-product-object/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/woocommerce-extension-development/custom-product-data-and-the-admin-ui/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/woocommerce-extension-development/pricing-hooks-tax-and-rounding/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-block-themes-and-fse/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-block-themes-and-fse/what-a-block-theme-actually-is/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-block-themes-and-fse/theme-json-as-the-source-of-tokens/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-block-themes-and-fse/presets-and-style-variations/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-block-themes-and-fse/the-block-template-hierarchy/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-block-themes-and-fse/template-parts-and-the-site-editor/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-block-themes-and-fse/patterns-and-synced-patterns/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-performance-and-scaling/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-performance-and-scaling/building-a-benchmark-that-repeats/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-performance-and-scaling/query-logging-and-profiling/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-performance-and-scaling/lab-data-versus-field-data/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-performance-and-scaling/query-budgets-and-the-queries-that-matter/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-performance-and-scaling/the-options-table-and-autoload/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-performance-and-scaling/postmeta-custom-tables-and-indexes/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-performance-and-scaling/the-object-cache-and-what-it-holds/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-performance-and-scaling/page-caching-and-what-breaks/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-performance-and-scaling/transients-keys-and-invalidation/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-plugin-development/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-plugin-development/anatomy-of-a-wordpress-plugin/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-plugin-development/the-request-lifecycle-your-code-runs-inside/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-plugin-development/activation-deactivation-and-uninstall/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-plugin-development/actions-filters-and-priority/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-plugin-development/options-transients-and-what-belongs-where/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-plugin-development/custom-tables-and-wpdb/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-security-and-hardening/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-security-and-hardening/trust-boundaries-in-a-wordpress-site/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-security-and-hardening/what-an-attacker-controls/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-security-and-hardening/ranking-findings-by-what-is-worth-protecting/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-security-and-hardening/validation-sanitisation-and-escaping/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-security-and-hardening/escaping-in-context/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-security-and-hardening/file-uploads-done-safely/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-security-and-hardening/capabilities-and-map-meta-cap/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-security-and-hardening/nonces-prove-intent-not-permission/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/courses/wordpress-security-and-hardening/rest-permissions-and-object-level-checks/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/delivery-tracking-without-a-saas-subscription/</loc>
    <lastmod>2026-10-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/delivery-tracking-without-a-saas-subscription.png</image:loc>
      <image:caption>Building Order Tracking in WooCommerce Without a Tracking Subscription</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/tracking-pages-without-javascript/</loc>
    <lastmod>2026-10-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/tracking-pages-without-javascript.png</image:loc>
      <image:caption>Tracking Pages That Work When JavaScript Does Not Run</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/wp-cron-dispatch-under-real-traffic/</loc>
    <lastmod>2026-09-29</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/wp-cron-dispatch-under-real-traffic.png</image:loc>
      <image:caption>WP-Cron Fires When a Visitor Arrives, Not When the Clock Says So</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/idempotency-keys-for-rest-endpoints/</loc>
    <lastmod>2026-09-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/idempotency-keys-for-rest-endpoints.png</image:loc>
      <image:caption>Idempotency Keys for a POST Endpoint That Must Survive Retries</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/wp-options-autoload-table-bloat/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/wp-options-autoload-table-bloat.png</image:loc>
      <image:caption>The wp_options Autoload Flag, and the Rows That Tax Every Request</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/capability-checks-people-forget/</loc>
    <lastmod>2026-09-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/capability-checks-people-forget.png</image:loc>
      <image:caption>The Capability Checks People Forget at Three Entry Points</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/core-web-vitals-on-product-pages/</loc>
    <lastmod>2026-09-11</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/core-web-vitals-on-product-pages.png</image:loc>
      <image:caption>The LCP Element on a Product Page Is Usually the Wrong Image</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/static-analysis-for-wordpress-plugins/</loc>
    <lastmod>2026-09-04</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/static-analysis-for-wordpress-plugins.png</image:loc>
      <image:caption>What PHPStan Catches in a WordPress Plugin, and What It Misses</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/woocommerce-hpos-migration-notes/</loc>
    <lastmod>2026-08-31</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/woocommerce-hpos-migration-notes.png</image:loc>
      <image:caption>What Actually Changes When WooCommerce Orders Leave Postmeta</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/wp-query-object-cache-misses/</loc>
    <lastmod>2026-08-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/wp-query-object-cache-misses.png</image:loc>
      <image:caption>Why One update_post_meta() Call Empties Your Query Cache</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/accessible-live-regions-for-order-status/</loc>
    <lastmod>2026-08-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/accessible-live-regions-for-order-status.png</image:loc>
      <image:caption>Live Regions for Order Status, Announced Once and Not Twice</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/webhook-retries-that-do-not-duplicate-orders/</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/webhook-retries-that-do-not-duplicate-orders.png</image:loc>
      <image:caption>Webhook Retries, and Why They Must Not Create a Second Order</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/redis-and-memcached-as-object-caches/</loc>
    <lastmod>2026-08-07</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/redis-and-memcached-as-object-caches.png</image:loc>
      <image:caption>Redis or Memcached: What the WordPress Object Cache Needs</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/nonces-are-not-authorisation/</loc>
    <lastmod>2026-08-03</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/nonces-are-not-authorisation.png</image:loc>
      <image:caption>A Nonce Proves Intent, and Never Permission to Act</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/woocommerce-checkout-session-loss/</loc>
    <lastmod>2026-07-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/woocommerce-checkout-session-loss.png</image:loc>
      <image:caption>The Checkout That Forgets the Cart, and the Five Things That Cause It</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/wp-post-meta-vs-custom-tables/</loc>
    <lastmod>2026-07-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/wp-post-meta-vs-custom-tables.png</image:loc>
      <image:caption>When wp_postmeta Stops Being the Right Place for Plugin Data</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/shipping-a-plugin-release-reliably/</loc>
    <lastmod>2026-07-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/shipping-a-plugin-release-reliably.png</image:loc>
      <image:caption>Building a Plugin Zip You Can Trust on Release Day</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/wpdb-prepared-statements-and-their-gaps/</loc>
    <lastmod>2026-07-02</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/wpdb-prepared-statements-and-their-gaps.png</image:loc>
      <image:caption>Where $wpdb-&gt;prepare() Protects You, and Where It Cannot</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/versioning-a-plugin-rest-api/</loc>
    <lastmod>2026-06-27</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/versioning-a-plugin-rest-api.png</image:loc>
      <image:caption>Versioning a Plugin REST API Without Breaking Other People's Code</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/cache-stampedes-on-sale-day/</loc>
    <lastmod>2026-06-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/cache-stampedes-on-sale-day.png</image:loc>
      <image:caption>The Thundering Herd When a Flash Sale Cache Entry Expires</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/block-themes-and-plugin-ui/</loc>
    <lastmod>2026-06-11</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/block-themes-and-plugin-ui.png</image:loc>
      <image:caption>Where Block Themes Break a Plugin's Front-End Output</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/real-scheduling-with-system-cron/</loc>
    <lastmod>2026-06-04</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/real-scheduling-with-system-cron.png</image:loc>
      <image:caption>From WP-Cron to a Job Queue With Claims, Retries and Dead Letters</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/object-cache-invalidation-strategy/</loc>
    <lastmod>2026-05-27</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/object-cache-invalidation-strategy.png</image:loc>
      <image:caption>Deciding What Invalidates What Before the Cache Bugs Arrive</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/hook-priority-and-ordering/</loc>
    <lastmod>2026-05-20</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/hook-priority-and-ordering.png</image:loc>
      <image:caption>Hook Priority Is a Coordination Mechanism, Not a Tuning Knob</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/forms-that-survive-a-slow-network/</loc>
    <lastmod>2026-05-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/forms-that-survive-a-slow-network.png</image:loc>
      <image:caption>Forms That Survive a Slow Network and an Impatient Tap</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/woocommerce-transactional-email-deliverability/</loc>
    <lastmod>2026-05-07</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/woocommerce-transactional-email-deliverability.png</image:loc>
      <image:caption>Why WooCommerce Order Email Lands in Spam, and What Actually Fixes It</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/threat-modelling-a-wordpress-plugin/</loc>
    <lastmod>2026-04-28</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/threat-modelling-a-wordpress-plugin.png</image:loc>
      <image:caption>Threat Modelling a WooCommerce Plugin in Ninety Minutes</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/measuring-wordpress-before-optimising/</loc>
    <lastmod>2026-04-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/measuring-wordpress-before-optimising.png</image:loc>
      <image:caption>Build a WordPress Benchmark You Can Trust Before You Change Anything</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/local-environment-that-matches-production/</loc>
    <lastmod>2026-04-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/local-environment-that-matches-production.png</image:loc>
      <image:caption>Closing the Gap Between a Bug That Will Not Reproduce and Production</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/css-architecture-for-plugin-screens/</loc>
    <lastmod>2026-03-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/css-architecture-for-plugin-screens.png</image:loc>
      <image:caption>CSS Architecture for Admin Screens Your Plugin Does Not Own</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/multisite-option-storage-differences/</loc>
    <lastmod>2026-03-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/multisite-option-storage-differences.png</image:loc>
      <image:caption>Multisite Option Storage, and What Multiplies by the Number of Sites</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/rest-authentication-for-machine-clients/</loc>
    <lastmod>2026-03-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/rest-authentication-for-machine-clients.png</image:loc>
      <image:caption>Authenticating a Machine Client Against the WordPress REST API</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/observability-for-a-wordpress-store/</loc>
    <lastmod>2026-02-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/observability-for-a-wordpress-store.png</image:loc>
      <image:caption>What to Log on a Store, and What Has to Stay Out of the Log</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/woocommerce-custom-order-statuses/</loc>
    <lastmod>2026-02-19</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/woocommerce-custom-order-statuses.png</image:loc>
      <image:caption>Custom WooCommerce Order Statuses That Survive REST and WP-CLI</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/file-upload-handling-in-plugins/</loc>
    <lastmod>2026-02-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/file-upload-handling-in-plugins.png</image:loc>
      <image:caption>Handling File Uploads in a Plugin Without Creating an Incident</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/image-pipeline-for-a-product-catalogue/</loc>
    <lastmod>2026-01-21</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/image-pipeline-for-a-product-catalogue.png</image:loc>
      <image:caption>Serving Product Images at the Size the Browser Actually Needs</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/code-review-checklist-for-wordpress-prs/</loc>
    <lastmod>2026-01-14</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/code-review-checklist-for-wordpress-prs.png</image:loc>
      <image:caption>The Code Review Checklist That Actually Works on WordPress Diffs</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/database-migration-safety-for-plugins/</loc>
    <lastmod>2026-01-07</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/database-migration-safety-for-plugins.png</image:loc>
      <image:caption>Database Migration Safety When the Store Cannot Go Offline</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/debugging-production-without-a-debugger/</loc>
    <lastmod>2025-12-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/debugging-production-without-a-debugger.png</image:loc>
      <image:caption>Debugging a Live Store When You Cannot Attach a Debugger</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/designing-webhook-payloads/</loc>
    <lastmod>2025-12-03</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/designing-webhook-payloads.png</image:loc>
      <image:caption>Designing the JSON Your Integration Sends Out</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/blog/indexing-for-order-queries/</loc>
    <lastmod>2025-11-20</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://wpsifero.com/assets/img/og/indexing-for-order-queries.png</image:loc>
      <image:caption>EXPLAIN as a Design Tool for WooCommerce Order Queries</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://wpsifero.com/category/wordpress/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/category/woocommerce/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/category/performance/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/category/apis/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/category/security/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/category/frontend/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/category/tooling/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/category/infrastructure/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/author/martin-kiel/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/author/ana-ferreiro/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/author/devon-parker/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/author/priya-raghunathan/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/author/tomas-lindqvist/</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/legal/privacy-policy.html</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/legal/cookies.html</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/legal/terms-and-conditions.html</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://wpsifero.com/legal/license.html</loc>
    <lastmod>2026-10-16</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
</urlset>
